CIS 720

Prerequisites by Topic

  • Basic process and thread models
  • Semaphores, monitors, and synchronous/asynchronous message passing
  • Knowledge of Java and C++
  • Programming Logic

Knowledge and Skills Acquired

  • Mastery of:
    • a formal method to develop concurrent programs
      • formal specification of safety properties of synchronization using
        invariants
      • derivation of coarse-grained solutions for the synchronization from
        the invariants
      • derivation of synchronization code in Java, monitors, semaphores,
        and message passing from the coarse-grained solutions
    • patterns of synchronization problems
    • application of the above formal method to actual programming of
      various synchronization problems
  • Familiarity with:
    • verification of concurrent programs using a model checker
    • synchronization in scientific parallel computations