Welcome to CS 651: Distributed Systems - Fall 2025.
NOTE: The course staff does not have access to the registration system and cannot help you register for the course.
CS 651 provides a programming-centric introduction to distributed systems. The course discusses computation and communication primitives, concurrency control, parallelism, replication, fault tolerance, distributed consensus, data consistency, sharding and consistent hashing, distributed transactions, cluster computing, distributed tracing, peer-to-peer systems, serverless, and systems for decentralized trust.
NOTE: CS 651 targets graduate students who enjoy hacking and have genuine interest in understanding distributed systems internals. The course has an overlap in topics with my undergraduate course CS 351, but the assignments are different (and more challenging). Unlike CS 351, this course focuses more on real systems from industry, includes graded paper reading, and requires independent exploration of the material.
CAS CS 350, CS 351, or equivalent (will be enforced!)
CS 651 requires basic knowledge of computer systems. Students must also have good programming skills, otherwise it will be difficult to keep up with the load. Prior experience with parallel programming is a plus but not required to succeed in the course.