CS-240 Syllabus

Schedule

This schedule and syllabus may be subject to change.

Lectures and related materials are licensed for use under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. Michael Freedman and Kyle Jamieson developed much of the original material. Wyatt Lloyd has updated it.

Creative Commons License

Date Topics Slides Readings
Mon 09/01 Introduction + course overview [pdf] [pptx]
Fundamentals
Thu 09/04 Network communication and Remote Procedure Calls [pdf] [pptx]
Mon 09/08 Go systems programming [pdf] [handout] See also the Go syntax reference
Thu 09/11 Time and logical clocks
Mon 09/15 Concurrency and RPCs in Go [pdf] [handout] [code] Suggested reading: "Concurrency" portion of a Tour of Go
Wed 09/17 Assignment 1 due at 11:59pm
Thu 09/18 Time and logical clocks (cont.) and Distributed snapshots
Replicated State Machines
Mon 09/22 Replicated State Machines via Primary-Backup
Wed 09/24 Assignment 2 due at 11:59pm
Thu 09/25 View Changes and Reconfiguration See also Viewstamped Replication Revisited
Mon 09/29 Consensus with Paxos
Thu 10/02 Raft Pre-reading: Raft
See also an online lecture about Raft by John Ousterhout
Mon 10/06 Byzantine Fault Tolerance Suggested reading: Practical BFT
See also an online lecture about BFT by Barbara Liskov
Eventual Consistency and Scaling Out
Thu 10/09 Eventual consistency, Bayou Pre-reading: Bayou
Mon 10/13 Peer-to-Peer Systems and Distributed Hash Tables [video] Suggested reading: Chord
Thu 10/16 Scale-out key-value storage, Dynamo [video] Pre-reading: Dynamo
Sun 10/19 Assignment 3 due at 11:59pm
Mon 10/20 No class; project work
Thu 10/23 Mid-semester Break
Strong Consistency and Scaling Out with Transactions
Mon 10/27 Consistency Models
Thu 10/30 CAP, FLP See also A Brief Tour of FLP Impossibility
Mon 11/03 Scalable Causal Consistency Suggested reading: COPS
Thu 11/06 No class; project work
Mon 11/10 No class; project work
Thu 11/13 Atomic Commit and Concurrency Control See also: Franklin, up to and including §3.2
Mon 11/17 Distributed transactions Suggested reading: Spanner
System Evaluation
Thu 11/20 Reasoning about System Performance
Mon 11/24 Exam
Thu 11/27 No class; project work
Mon 12/01 No class; project work
Thu 12/04 No class; project work
Mon 12/08 Project presentations 1
Thu 12/11 Project presentations 2

Last updated: 2025-09-04 13:09