Spring 2023-CS 539-Distributed Algorithms-ECE 526
Distributed algorithms are algorithms designed to run on multiple processes or mutually distrusting participants, often to increase performance through parallel processing or improve resilience by tolerating faults. Despite not having centralized control, distributed algorithms typically require delicate coordination among processes. The concurrency, non-determinism, and potential faults make distributed algorithms hard to design and analyze compared to single-process algorithms.
This course covers foundations and recent advances in distributed algorithms. The course studies important problems in distributed computing, including graph algorithms, synchronization, consensus, broadcast, state machine replication, distributed shared memory, mutual exclusion, shared objects, and threshold cryptography. The course studies foundational models and assumptions regarding shared memory vs. message passing, synchrony vs. asynchrony, reliability of message delivery, crash and Byzantine faults. The course introduces common algorithm design techniques, including synchronization, cryptographic primitives, leader election, randomization, optimistic case, simulation, and quorums.
This is a theory/algorithm course that emphasizes formal modeling, rigorous proofs, theoretical analysis, and fundamental limits in the form of lower bounds and impossibility results. While the course also touches on practical aspects whenever applicable, it will not be a priority of the course, and many topics covered in the course will be of theoretical interest primarily at present.
Prerequisite: None required. But a course on algorithms (like CS/ECE 374 or CS 473) OR distributed systems (like CS 425 / ECE 428) is strongly recommended.
Grading: five to six problem sets 60%; midterm 15%, final exams 20%; class participation 5%.
Resources: No required textbook. The following textbooks and online resources may be helpful.
- Distributed Computing: Fundamentals, Simulations, and Advanced Topics by Hagit Attiya and Jennifer Welch.
- Notes on Theory of Distributed Systems by James Aspnes.
- Distributed Algorithms by Nancy Lynch.
- Decentralized Thoughts
Lectures: Monday and Wednesday 9:30 -- 10:45 am in 114 Transportation Building.
Lecture recordings will be available shortly after each class on our course channel on Mediaspace. But in-person attendance to lectures is recommended.
Office Hours: Monday 2 - 3 pm in 4312 Siebel Center AND after each class in the lecture room.
Tentative Schedule: (subject to change)
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.