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