CS 425
CS 425 - Distributed Systems
Spring 2025
Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
---|---|---|---|---|---|---|---|---|---|
Distributed Systems | CS425 | TG | 56315 | LCD | 3 | 1230 - 1345 | W F | 1320 Digital Computer Laboratory | Radhika Mittal |
Distributed Systems | CS425 | TU | 31384 | LCD | 3 | 1230 - 1345 | W F | 1320 Digital Computer Laboratory | Radhika Mittal |
Distributed Systems | ECE428 | TG | 56317 | LCD | 3 | 1230 - 1345 | W F | 1320 Digital Computer Laboratory | Radhika Mittal |
Distributed Systems | ECE428 | TU | 31388 | LCD | 3 | 1230 - 1345 | W F | 1320 Digital Computer Laboratory | Radhika Mittal |
See full schedule from Course Explorer
Official Description
Course Director
Text(s)
No required textbook. Webnotes: https://courses.engr.illinois.edu/cs425/fa2018/lectures.html
Learning Goals
Design solutions both algorithmic and systems to new problems that arise in today¹s distributed systems, and reason about their practicality, i.e., complexities and tradeoffs involved. (1, 2, 6)
Identify classical distributed computing concepts in the context of today¹s distributed computing systems, e.g., in the context of clouds, peer-to-peer systems, mobile systems, etc. Apply known concepts where applicable, or design new ones where new solutions are required. (1, 2, 6)
Know the fundamental limitations of what is possible in asynchronous distributed systems and what is not. Apply these in today's distributed systems. (1, 2, 6)
Analyze a given distributed algorithm in terms of its computation and communication complexity, scalability, and fault-tolerance. (1, 2, 6)
Build, debug, deploy and demo a fully working distributed system from scratch and in progressive stages, given merely specifications for each stage, e.g., specifications about scalability and fault-tolerance. Example programming assignments have include cloud computing systems like key-value stores, Mapreduce, distributed hash tables, peer-to-peer wireless systemsm stream processing systems, and graph processing systems. (1, 2, 3, 4, 5, 6)
Be able to design and implement working distributed systems in project groups. Pair programming is highly encouraged. (1, 2, 3, 4, 5, 6)
Know and be able to apply basics of popular industry distributed systems today (e.g., Google¹s and Yahoo¹s Hadoop), and basics of working with distributed systems in industry today (e.g., unit testing, good logging, etc.). (1, 2, 6)
Topic List
Distributed Computing Theory Fundamentals: Failure detectors, Time synchronization, Lamport timestamps, Global snapshots, Multicast, Leader Election, Mutual Exclusion,
Distributed Computing Systems Fundamentals: RPCs and RMIs, Peer to peer systems, Distributed hash tables,
Consensus: Impossibility, Paxos, Two-phase commit
Cloud Computing: Basics, Mapreduce, Key-value stores, Graph processing, Stream Processing
Distributed Concurrency and Replication: Concurrency control, Replication control, Quorums, Gossiping, Self-stabilization
Security: Basics, Byzantine fault-tolerance
Miscellaneous: Distributed file systems, Distributed shared memory,
Assessment and Revisions
Revisions in last 6 years | Approximately when revision was done | Reason for revision | Data or documentation available? | Documentation provided? |
Introduced new topics such as cloud computing (e.g., mapreduce, key-value stores) as well as classical topics such as self-stabilization, graph processing, and wireless systems. | Fall 2010-Present | To keep the course current with evolving industry trends. | informal discussions and coordination among Gupta, Nahrstedt, Mitra over several semesters | informal discussions |
Reduced focus on transactions | Fall 2010-Present | To make space for new topics (see above) | informal discussions and coordination among Gupta, Nahrstedt, Mitra over several semesters | informal discussions |
Programming assignments oriented towards cloud computing industry | Fall 2012-Present | To keep the course programming assignments current with evolving industry trends. | informal discussions | informal discussions |
Required, Elective, or Selected Elective
Selected Elective.