CS 425

CS 425 - Distributed Systems

Fall 2025

TitleRubricSectionCRNTypeHoursTimesDaysLocationInstructor
Distributed SystemsCS425CSP72128PKG3 -   Illini Center Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425CSP72128PKG3 -    Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425DS369747ONL3 -    Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425DS467394ONL4 -    Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425MC362170PKG3 -   Illini Center Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425MC362170PKG3 -    Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425MC471082PKG4 -   Illini Center Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425MC471082PKG4 -    Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425SG57769LCD31400 - 1515 T R  0027/1025 Campus Instructional Facility Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsCS425SU36091LCD31400 - 1515 T R  0027/1025 Campus Instructional Facility Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsECE428DS467400ONL4 -    Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsECE428SG57771LCD31400 - 1515 T R  0027/1025 Campus Instructional Facility Indranil Gupta
Aishwarya Ganesan
Ram Kesavan
Distributed SystemsECE428SU36102LCD31400 - 1515 T R  0027/1025 Campus Instructional Facility Indranil Gupta
Aishwarya Ganesan
Ram Kesavan

Official Description

Protocols, specification techniques, global states and their determination, reliable broadcast, transactions and commitment, security, and real-time systems. Course Information: Same as ECE 428. 3 or 4 undergraduate hours. 3 or 4 graduate hours. Prerequisite: Credit or concurrent enrollment in one of CS 240, CS 241, CS 340, CS 341 or ECE 391.

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,

Required, Elective, or Selected Elective

Selected Elective.

Last updated

2/12/2019by Indranil Gupta