15-440: Distributed Systems Syllabus


Text: Distributed Systems Concepts and Design, fourth edition
George Coulouris, Jean Dollimore, Tim Kindberg

The lecture notes will be available after each lecture to assist with studying -- please read them as they often contain material that goes beyond just what we covered in lecture! For supplemental reading in particular areas, please consult one of the following texts:


This semester we will have recitations for 15-440. Please select one recitation section to attend (the content will be identical). Recitations will cover systems hacking techniques designed to save you time and pain on the projects, will go into more detail about certain topics, and will have review sessions before exams.

If you have taken 15-441, the first four recitations will be covering similar material, so you do not need to attend them.


Your final grade for the course will be based on the following weights for the components of the course. The weights of the individual projects will vary slightly by the difficulty of the project:

The midterms will be in-class, closed-book exams. While they may cover all material to that point in the class, their content will emphasize the material covered since the previous exam. The final exam will be a closed-book exam, covering material from the whole semester, with slight emphasis on material covered since the last midterm.

For more information about the project component, see the assignments page.

The homework will combine both textbook-like questions as well as hands-on experimental exercises. There will be three homework assignments.

Because of the importance of understanding both the theoretical and hands-on elements of systems, students must pass all three components of the course (homeworks, exams, and the projects) in order to receive a passing grade for the course. This does not affect the actual letter grade assignment unless one of the components is not completed to a passing standard.


Also available as an ical file that you can subscribe to.

Date Instructor Topics Notes Readings
Tue 08/25 dga Introduction
Chapter 1
Wed 08/26 First week of class, no recitation
Thu 08/27 dga Communication 1, the Internet in a Day, day 1
[pdf] [key]
Chapter 3 3.1 through 3.3.4 (see bboard post), 3.3.7, 3.4 through 3.4.2, 3.4.6, 3.4.7
Tue 09/01 dga Communication 2, the Internet in a Day, day 2
[pdf] [key]
2.1, 2.2.5, 2.3, 4.1, 4.2
Wed 09/02 vrv Recitation Intro: Overview, version control
See Revision Control chapter of systems-se.
Also see the online Subversion book.
Thu 09/03 dga Processes, Tasks, Threads, Abstraction
[pdf] [key]
Project 1 Stage 0 (svn + Makefile creation) Due 6.1, 6.2, 6.3, 6.4 (ignore thread sync)
Tue 09/08 dga Remote Procedure Calls
[pdf] [key]
Chapter 5 through 5.3
Wed 09/09 TA Modularity and Project 1 Q& A
Thu 09/10 dga Local consistency - locking, race conditions, etc.
See also Ted Faber's Dining Philosopher Notes 13.1, 13.4, Kesden concurrency notes
Tue 09/15 dga Mutexes and Condition Variables and Atomic Instructions
Wed 09/16 TA Debugging
Techniques and tools. Files: debug macro .
See Debugging chapter of systems-se.
Thu 09/17 dga Distributed Filesystems
[pdf] [key]
Tue 09/22 dga NO CLASS - Gates Opening Ceremonies
Wed 09/23 TA Cancelled, replaced with extra office hours. See assn page.
Thu 09/24 dga Distributed Filesystems 2 - AFS, Coda, callbacks
[pdf] [key]
Tue 09/29 charlie Time and Synchronization
Homework 1 due before/in class.
Lab 2.1 assigned
11.1 - 11.4
Wed 09/30 TA Introduction to Project 2
Thu 10/01 charlie Distributed Mutual Exclusion
12.1 - 12.2
Tue 10/06 dga Fault Tolerance 1 - Detecting and Correcting Local Faults
[pdf] [key]
Wed 10/07 TA More on Project 2
Thu 10/08 dga RAID
Lecture notes. Lab 2.1 due, Lab 2.2 assigned
Tue 10/13 charlie Concurrency Control
Wed 10/14 No recitation (there will be a separate review session)
(study for the midterm)
Thu 10/15 dga MIDTERM EXAM
Tue 10/20 charlie Logging and Crash Recovery
Wed 10/21 TA Midterm post mortem
Thu 10/22 dga Distributed Replication
[pdf] [key]
Lab 2.2 due, Lab 2.3 assigned
Tue 10/27 dga Data-Intensive Computing and MapReduce/Hadoop
[pdf] [key]
For more info, see the MapReduce paper, it's pretty readable.
Wed 10/28 TA The CAP Theorem
Thu 10/29 dga Distributed Filesystems for MapReduce / HDFS
Read the Google Filesystem. Lab 2.3 due, lab 2.4 assigned. Optional GFS follow-up interview.
Tue 11/03 dga Consistent hashing and name-by-hash
No notes; see p2p lecture for consistent hashing.
Wed 11/04 TA Introduction to Hadoop Programming
Thu 11/05 dga Peer-to-Peer
Lab 2.4 due
Tue 11/10 dga DNS and Content Delivery Networks
Wed 11/11 TA No recitation (vrv out of town)
Thu 11/12 charlie Security in Distributed Systems 1 - The Crypto Building Blocks
HW2 due, P3 Assigned
Tue 11/17 Max Krohn Max Krohn guest lecture
HW3 assigned?
Wed 11/18 TA Extra Office Hours for Project/HW Questions (GHC6221)
Thu 11/19 charlie Security in Distributed Systems 2 - The Systems
Tue 11/24 Thanksgiving Holiday
Wed 11/25 Thanksgiving Holiday
Thu 11/26 Thanksgiving Holiday
Tue 12/01 dga Case Study - Anonymous Routing and TOR
tor paper and one tor presentation.
Wed 12/02 TA Office Hours for Project (GHC6221) (no OH on Monday)
Thu 12/03 dga Energy Efficient Computing
P3 due
Sat 12/12 Alex Final Review, DH 2315, 12pm-2pm
Mon 12/14 dga FINAL EXAM. 1pm-4pm. Wean 7500

Last updated: Sun Dec 13 10:12:22 -0500 2009 [validate xhtml]