The course is an advanced undergraduate level course in parallel and distributed computing, covering the following topics:
- models, fundamental concepts and reasoning principles for parallel and distributed computer systems, impossibility results
- algorithms and protocols for common computational problems in communication, synchronization, fault tolerance, coordination and consensus, replication and sharing, security, and peer-to-peer systems
- basic familiarity with concurrent programming primitives (semaphores, locks, monitors) and some theoretical interest and proficiency is useful for this course.