3 credits Fundamental concepts are covered including concurrency, synchronization, safety and liveness, fairness, axioms and inference rules. Concurrent execution with shared variables, semaphores of, critical regions, monitors; concurrent execution using message passing: asynchronous and synchronous message passing; concurrent programming languages and environments.
Prerequisites CS 303; CS 470 or 570 or CS 471 or 571; or consent of instructor.