General Information



This course introduces the classic material on the theory of distributed computing from an algorithmic perspective. The course will go over the most important algorithms, such as computing global snapshots, leader election, mutual exclusion, fault-tolerance, etc. These techniques will expand over different models of computation, namely, message passing and shared memory. The course will also describe the most important impossibility and lower-bound results as well as techniques for proving the coreectness of distributed algorithms.

  • Logical clocks
  • Distributed snapshots
  • Leader election
  • Mutual exclusion
  • Graph Algorithms
  • Consensus
  • Byzantine fault-tolerance
  • Self-stabilizations
  • Epistemic logic

Location and Time

Instructor: Borzoo Bonakdarpour, ITB 219, x23439
URL: i
Lectures: Mon - Wed 9:00-10:30am, ITB 222
Office Hours: Mon - Wed 10:30-11:00am, ITB 219

Evaluation (preliminary)

Assignments 25%
Mid-term Exam 20%
Final Exam 20%
Project (report and presentation)    20%
Paper presentation      15%

Lateness Policy

All homework assignments are due in the beginning of class (i.e., 4:00pm). Submissions should be made individually. You are allowed to submit one and only one assignment at most one week late. Other late submissions are subject to 50% deduction. All submissions must be typed unless they are electronic submissions (e.g., files, scripts, etc).

Academic Integrity

All students are expected to adhere to McMasters academic integrity policies.