Distributed Systems
A distributed system is any system of independent computers that communicate and cooperate via a newtork. Distributed systems are widely used in many settings spanning cloud services, mobile computers, internet of things, machine learning systems, interplanetary communications, and more. This course will introduce students to the fundamental properties of distributed systems, and develop techniques for building systems that are reliable, consistent, and scalable. Topics will include remote procedure call, logging and checkpointing, replication, consistency, fault tolerance, security and privacy, and more. The course will include a substantial amount of programming to build several working distributed systems that implement scalable data storage, large scale computation, and reliable communication. A course project is required. Graduate students enrolled in 60771 will additional study foundational papers in the field on these topics.
Sources
- Course catalogue ↗2026-2027