| Th Jan 23 | Introduction | M0: Setup & Centralized Computing | Q1 | Google | 
| Tu Jan 28 | Of Nodes and Servers |  |  | Node.js | 
| Th Jan 30 | Communication & Serialization | M1: Serialization / Deserialization | Q2 | Cornflakes | 
| Tu Feb 4 | Time and the Ordering of Events |  |  | Time, Clocks, & Ordering | 
| Th Feb 6 | Models of Distribution | M2: Actors & RPCs | Q3 | Barrelfish | 
| Tu Feb 11 | Broadcast protocols |  |  | Hints on Designing Systems | 
| Th Feb 13 | Groups & Gossip | M3: Node Groups & Gossip | Q4 | Gossip: Promise and Limitations | 
| Tu Feb 18 | — |  |  |  | 
| Th Feb 20 | Data Sharding & Partitioning | M4: Distributed Storage | Q5 | Hyperdex | 
| Tu Feb 25 | Distributed Routing & Hashing |  |  | Chord | 
| Th Feb 27 | J. Pattiz (Google): 
    Autosharding Beyond the Textbook |  |  | Slicer | 
| Tu Mar 4 | Exam 1 Review | Project Teams Due |  |  | 
| Th Mar 6 | Exam 1 |  |  |  | 
| Tu Mar 11 | Distributed Processing: MapReduce |  |  | MapReduce | 
| Th Mar 13 | Distributed Processing: Spark & Beyond | M5: Distributed Processing | Q7 | Spark | 
| Tu Mar 18 | Internals of Distributed Processing |  |  | DiSh | 
| Th Mar 20 | K. Mamouras (Rice U.): Distributed Streaming Models | M6: Cloud Deployment | Q8 | Concurrent Models | 
| Tu Mar 25 | - |  |  |  | 
| Th Mar 27 | - |  |  |  | 
| Tu Apr 1 | (no class)3 | Submissions |  |  | 
| Th Apr 3 | Fault Tolerance & Replication |  |  | Dynamo | 
| Tu Apr 8 | Consensus & BFT |  | Q9 | Paxos | 
| Th Apr 10 | Special Topics: Microservices & Serverless |  |  | SigmaOS | 
| Tu Apr 15 | Special Topics: Security as Distribution |  | Q10 | Separation Kernel | 
| Th Apr 17 | Poster Session |  |  |  | 
| Tu Apr 22 | Exam 2 Review / Course Recap |  |  | Scalability COST | 
| Th Apr 24 | Exam 2 |  |  |  |