Fall 2025 Course Schedule
Need to be on campus, or use VPN to access some papers. Or, change “dl.acm.org/” to “dl-acm-org.proxy.library.cornell.edu/” in the URL.
Week | Class # | Day | Date | Topic | Reading | Notes |
---|---|---|---|---|---|---|
1 | 1 | Tue | Aug 26 | Administrivia | How to read a paper | |
2 | Thu | Aug 28 | Classical systems; intro to first programming project | Epidemic algorithms for replicated database maintenance by Alan Demers et al. | Due Aug 28, 7.30am | |
2 | 3 | Tue | Sep 2 | Building Large, Principled Systems | End-to-end arguments in system design by Jerry H. Saltzer et al.
Hints for computer system design by Butler W. Lampson |
Due Sep 2, 7.30am |
4 | Thu | Sep 4 | Classical Systems | The UNIX time-sharing system by Dennis M. Ritchie et al.
The structure of the “THE”-multiprogramming system by Edsger W. Dijkstra |
Due Sep 4, 7.30am | |
3 | 5 | Tue | Sep 9 | Classic File Systems | Required: The design and implementation of a log-structured file system by Mendel Rosenblum et al.
Optional: A fast file system for Unix by William N. Joy et al. |
Due Sep 9, 7.30am |
6 | Thu | Sep 11 | Concurrency, Threads, and Events | On the duality of operating system structures by Hugh C. Lauer et al.
Capriccio: scalable threads for internet services by Rob van Behrn et al. |
Due Sep 11, 7.30am | |
4 | 7 | Tue | Sep 16 | µ-kernels | Required: The performance of μ-kernel-based systems by Hermann Härtig et al.
Optional: Mach: a foundation for open systems (operating systems) by Richard Rashid et al. |
Due Sep 16, 7.30am |
8 | Thu | Sep 18 | Extensible Kernels (Lindsey) | Required: Exokernel: an operating system architecture by Dawson R. Engler et al.
Optional: Extensibility, Safety and Performance in the SPIN Operating System by Brian N. Bershad et al. |
Due Sep 18, 7.30am | |
5 | 9 | Tue | Sep 23 | Virtualization (Irene) | Required: Xen and the art of virtualization by Paul Barham et al.
Optional: The Origin of the VM/370 Time-Sharing System by R. J. Creasy |
Due Sep 23, 7.30am |
10 | Thu | Sep 25 | Many Cores (Yifan) | Required: An Analysis of Linux Scalability to Many Cores by Silas Boyd-Wickizer et al. Optional: Corey: An Operating System for Many Cores by Silas Boyd-Wickizer et al. |
Due Sep 25, 7.30am | |
6 | 11 | Tue | Sep 30 | seL4 (Ernest) | Required: seL4: formal verification of an OS kernel by Gerwin Klein et al.
Optional: Shielding Applications from an Untrusted Cloud with Haven by Andrew Baumann et al. |
Due Sep 30, 7.30am |
12 | Thu | Oct 2 | Gossip Program Evaluation Session | |||
7 | 13 | Tue | Oct 7 | Clocks / NTP (Ben) | Required: Time, clocks, and the ordering of events in a distributed system by Leslie Lamport
Optional: Internet time synchronization: the network time protocol by David L. Mills |
Due Oct 7, 7.30am |
14 | Thu | Oct 9 | Chain replication / Fault tolerance (Jacqueline) | Implementing fault-tolerant services using the state machine approach: a tutorial by Fred B. Schneider
Chain replication for supporting high throughput and availability by Robbert van Renesse et al. |
Due Oct 9, 7.30am | |
8 | - | Tue | Oct 14 | Fall Break | ||
15 | Thu | Oct 16 | Distributed Systems: FLP (Gilad) | Impossibility of distributed consensus with one faulty process by Michael J. Fischer et al. | Due Oct 16, 7.30am | |
9 | 16 | Tue | Oct 21 | Paxos (Jorge) | Required: Paxos Made Simple by Leslie Lamport
Optional: In search of an understandable consensus algorithm by Diego Ongaro et al. |
Due Oct 21, 7.30am |
17 | Thu | Oct 23 | Byzantine Fault Tolerance (Daniel L.) | Required: Practical Byzantine fault tolerance by Miguel Castro et al.
Optional: The Byzantine Generals Problem by Lamport et al. |
Due Oct 23, 7.30am | |
10 | 18 | Tue | Oct 28 | Chord (Chengyu) | Required: Chord: A scalable peer-to-peer lookup service for internet applications by Ion Stoica et al.
Optional: The impact of DHT routing geometry on resilience and proximity by Krishna Gummadi et al. |
Due Oct 28, 7.30am |
19 | Thu | Oct 30 | Dynamo (Muhammad) | Dynamo: amazon's highly available key-value store by Gieseppe DeCandia et al. | Due Oct 30, 7.30am | |
11 | 20 | Tue | Nov 4 | Google File System (Jamal) | Required: The Google file system by Sanjay Ghemawat et al.
Optional: Spanner: Google’s Globally Distributed Database by James C. Corbett et al. |
Due Nov 4, 7.30am |
21 | Thu | Nov 6 | MapReduce / Spark (Julian) | MapReduce: simplified data processing on large clusters by Jeffrey Dean et al.
Apache Spark: a unified engine for big data processing by Matei Zaharia et al. |
Due Nov 6, 7.30am | |
12 | 22 | Tue | Nov 11 | Serverless / OpenLambda (Munachimso) | Occupy the cloud: distributed computing for the 99% by Eric Jonas et al.
Serverless computation with openLambda by Scott Hendrickson et al. |
Due Nov 11, 7.30am |
23 | Thu | Nov 13 | Large Scale Data Analytics (Daniel E.) | Required: Pregel: a system for large-scale graph processing by Grzegorz Malewicz et al.
Optional: TensorFlow: a system for large-scale machine learning by Martin Abadi et al. |
Due Nov 13, 7.30am | |
13 | 24 | Tue | Nov 18 | Congestion control (Anshuman) | Congestion avoidance and control by Van Jacobson | Due Nov 18, 7.30am |
25 | Thu | Nov 20 | Software-Defined and Programmable Networks (Sheng-Yen) | Required: Arrakis: The Operating System Is the Control Plane by Simon Peter et al.
Optional: OpenFlow: enabling innovation in campus networks by Nick McKeown et al. |
Due Nov 20, 7.30am | |
14 | 26 | Tue | Nov 25 | Bitcoin (Zhihan) | Bitcoin: A Peer-to-Peer Electronic Cash System by Satoshi Nakamoto | Due Nov 25, 7.30am |
- | Thu | Nov 27 | Thanksgiving Break | |||
15 | 27 | Tue | Dec 2 | Final student project presentations | TBD | Due Dec 2, 7.30am |
28 | Thu | Dec 4 | Final student project presentations | TBD | Due Dec 4, 7.30am |