CS 142, Fall 2019
Distributed Computing  
Instructors

Teaching assistants 
Course descriptionCS 142. Distributed Computing. 9 units (306); 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 faulttolerance for distributed systems. Review of stateoftheart distributed systems, particularly cloud computing systems. Instructor: Murray/Chandy. 
Course announcements

Course syllabus and schedule
Lecture Schedule
There will be 23 one hour lectures per week, with the specific days varying from weektoweek. The lecture days for each week will be announced in class and posted here at least 1 week in advance.
Reading:
 Opt = optional reading (useful if you are confused and trying to understand the basic concepts)
 Rec = recommended reading (this is what the homework is based on)
 Adv = advanced reading (more detailed results, useful if you are interested in learning more)
Date  Topic  Reading/Homework 
W1 (30 Sep) 


W2 (7 Oct) 


W3 (14 Oct) 
 
W4 (21 Oct) 


W5 (28 Oct) 


W6 (4 Nov) KMC 


W7 (11 Nov) 


W8 (18 Nov) KMC 


W9 (25 Nov)  
W10 (2 Dec) 


Grading
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
 P. Sivilotti, Introduction to Distributed Systems, Course notes, 2007.
The following additional references may also be useful:
 K.M. Chandy and J. Misra, Parallel Program Design: A Foundation, AddisonWesley, 1988