Course Schedule

Note that the schedule below is tentative and subject to change.

DS refers to Distributed Systems (4th edition) by Maarten van Steen and Andrew S. Tanenbaum. DDIA refers to Designing Data Intensive Applications (2nd edition) by Martin Kleppmann and Chris Riccomini. Both textbooks are available online (see Reading Materials for more details).

Date Topic Suggested Readings Assignment
1/8/26 Introduction
  • DS Ch. 1.1-1.4
1/13/26 IPC/RPC
  • DS Ch. 4.1-4.3
  • DDIA Ch. 5
1/15/26 System Models and Failure Models
  • DS Ch. 8.1
  • DDIA Ch. 9
1/20/26 Time and Event Ordering
  • DS Ch. 5.1-5.2
1/22/26 Clock Synchronization
  • DS Ch. 5.1-5.2
1/27/26 Message Ordering
  • DS Ch. 7.2, 8.4
1/29/26 Replication
  • DS Ch. 8.2
PA 1 Due 1/30
2/3/26 Consensus
  • DS Ch. 8.2
2/5/26 Consensus
  • DS Ch. 8.2
Project Proposal Due 2/6
2/10/26 NO CLASS
2/12/26 Raft HW 1 Due 2/13
2/17/26 Distributed Commit
  • DS Ch. 8.5
  • DDIA Ch. 8
2/19/26 Consistency Models and CAP
  • DS Ch. 7.2, 7.3
  • DDIA Ch. 10
PA 2 Due 2/20
2/24/26 BFT
  • DS Ch. 8.2
2/26/26 No Class (Midsemester Reading Day) HW 2 Due 2/27
3/3/26 P2P Systems
  • DS Ch. 2.4
3/5/26 DHTs
  • DS Ch. 6.2
Project Update 1 Due 3/6
3/10/26 Midterm Review, Lightning Talks
3/12/26 Midterm
3/24/26 Chubby, ZooKeeper
3/26/26 MapReduce, Spark PA 3 Due 3/30
3/31/26 GFS, Tectonic
4/2/26 BigTable HW 3 Due 4/6
4/7/26 Dynamo
4/9/26 Cassandra Project Update 2 Due 4/13
4/14/26 Spanner
4/16/26 Serverless, MLSys
4/21/26 Final Project Presentation
4/23/26 Final Project Presentation Final Report Due 4/26
4/29/26 Final Exam (1:30-4:00PM)