Page tree
Skip to end of metadata
Go to start of metadata


  • Richard Murray (CMS)
  • Mani Chandy (CMS)
  • Lectures: MW, 2-3 pm, 105 Annenberg
  • Office hours: by appointment

Teaching assistants

  • Navid Azizan-Ruhi,  Sumanth Dathathri, Linqi (Daniel) Guo, Yoke Peng Leong
  • Problem solving sessions: Fri, 2-3 pm, 105 Annenberg
  • Office hours: Fri, 4-5 pm, 107 ANB; Tue, 1:30-3:30 pm, 243 ANB
  • Online resources: Piazza (Q&A forum), Moodle (HW submission)

Course description

CS 142. Distributed Computing. 9 units (3-0-6); first term. Prerequisites: CS 24, CS 38. Fundamental concepts for the design and analysis of distributed systems and algorithms, including reasoning about distributed programs, handling the lack of global time and global state, achieving distributed consensus in the presence of faults and asynchrony, and designing fault-tolerance for distributed systems. Review of state-of-the-art distributed systems, particularly cloud computing systems. Instructor: Murray/Chandy. 

Course announcements

  • 11 Oct 2017, 4 pm: updated copies of lecture slides with some small corrections are posted (including Mani's alternative version of the proof for FindMax).
  • 4 Oct 2017: If you are having trouble submitting your set via Moodle, try this link:
  • 25 Sep 2017: Lecture materials and HW #1 have been posted.
  • 25 Sep 2017: Welcome to CS 142!  This page contains all information about the course.

Recent space activity

 Course syllabus and schedule

W1 (25 Sep)

Logic and computation

  • Motivation, course admin
  • Propositional logic, guarded command programs
W2 (2 Oct)

Specifications and proofs

  • Program properties (invariants, safety, liveness)
  • Simple examples and proofs of correctness
W3 (9 Oct)
W4 (16 Oct)

Time, clocks

Gossip algorithms

W5 (23 Oct)

Distributed computation (averaging, optimization)

Implementation systems: MapReduce (not covered on midterm or final)

  • TBD
  • Midterm: out 25 Oct, due 1 Nov
W6 (30 Oct)

Snapshots and related topics

  • Sivilotti, Chapters 7-11
  • HW #5 due on 8 Nov
  • HW #6 due on 15 Nov
W7 (6 Nov)
W8 (13 Nov)

Topic TBD

  • Reading TBD
  • HW #7 due on 22 Nov
W9 (20 Nov)

Byzantine agreement and blockchains )

  • Sivilotti, Ch 12
  • HW #8 due on 1 Dec (Fri)
  • Final: out 1 Dec, due 8 Dec

W10 (27 Nov)


The final grade will be based on homework sets, a midterm exam, and a final exam: 

  • Homework (50%): Homework sets will be handed out weekly and due on Wednesdays by 2 pm (submitted via Moodle). Each student is allowed up to two extensions of no more than 2 days each over the course of the term. Homework turned in after Friday at 2 pm or after the two extensions are exhausted will not be accepted without a note from the health center or the Dean. 
  • Midterm exam (20%): A midterm exam will be handed out at the beginning of midterms period (25 Oct) and due at the end of the midterm examination period (1 Nov). The midterm exam will be open book (textbook and course notes OK: access to the Internet is not allowed). 
  • Final exam (30%): The final exam will be handed out on the last day of class (1 Dec) and due at the end of finals week. The final exam will be open book (textbook and course notes OK: access to the Internet is not allowed).

Collaboration Policy

Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you cannot consult homework solutions from prior years and you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter at the time of writing. 

No collaboration is allowed on the midterm or final exams.

Course Text and References

The primary course text is 

The following additional references may also be useful:

  • K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, Addison-Wesley, 1988
  • No labels