Course Description
An introduction to the principles and practice of distributed systems. Topics include communication protocols, distributed coordination, consistency models, fault tolerance, distributed storage, and cloud computing architectures.
Prerequisites: CS 240 (Operating Systems), CS 220 (Computer Networks)
Instructor Information
Professor: Dr. Michael Chen
Email: m.chen@university.edu
Office: CIT 415
Office Hours: Wednesdays 1:00-3:00 PM or by appointment
Teaching Assistant: Sarah Park (s.park@university.edu)
TA Office Hours: Mondays & Fridays 3:00-4:30 PM, CIT Lab 3
Learning Outcomes
By the end of this course, students will be able to:
- Understand fundamental concepts of distributed systems design
- Analyze and reason about consistency, availability, and partition tolerance trade-offs
- Implement distributed algorithms for coordination and consensus
- Design fault-tolerant distributed applications
- Evaluate modern distributed systems architectures
Textbooks
Required: "Designing Data-Intensive Applications" by Martin Kleppmann (O'Reilly, 2017)
Recommended:
- "Distributed Systems" by Maarten van Steen & Andrew S. Tanenbaum (3rd ed.)
- Research papers posted on course website
Grading
| Component | Weight |
|---|---|
| Programming Assignments (4) | 40% |
| Midterm Exam | 20% |
| Final Exam | 25% |
| Paper Reviews & Discussion | 10% |
| Class Participation | 5% |
Grading Scale: A (90-100), B (80-89), C (70-79), D (60-69), F (<60)
Course Schedule (Tentative)
| Week | Topic | Reading |
|---|---|---|
| 1-2 | Introduction & Communication | Ch 1-2 |
| 3-4 | Time & Ordering | Lamport paper |
| 5-6 | Consistency Models | Ch 5 |
| 7 | Replication | Ch 6 |
| 8 | Midterm Exam | — |
| 9-10 | Consensus & Raft | Raft paper |
| 11 | Distributed Transactions | Ch 7 |
| 12-13 | MapReduce & Spark | MapReduce paper |
| 14 | Case Studies (GFS, Dynamo, Spanner) | Papers TBA |
| 15 | Review | — |
| 16 | Final Exam | — |
Programming Assignments
Assignment 1: Implementing a simple RPC framework
Assignment 2: Building a distributed key-value store
Assignment 3: Raft consensus algorithm implementation
Assignment 4: Fault-tolerant MapReduce system
All assignments use Go. Prior Go experience not required—tutorial provided in Week 1.
Policies
Attendance: Not mandatory but strongly encouraged. Quizzes and discussions happen in class.
Late Work: 10% penalty per day, up to 3 days. No credit after 3 days without prior arrangement.
Exam Policy: Closed book, closed notes. One double-sided 8.5×11" cheat sheet allowed.
Accessibility: Students requiring accommodations should contact the Office of Disability Services and inform the instructor within the first two weeks.