COSC 49.13 Distributed Computing: Algorithms and Verification
Distributed systems are everywhere—from the shared-memory multiprocessors in our phones and laptops to cloud computing data centers and the internet itself. These systems need to safely and efficiently compute while overcoming the myriad challenges posed by asynchrony, non-determinism, and faulty or adversarial peers.
In this course, we study algorithms for distributed systems and understand how to mathematically reason about these algorithms. We will learn how to formally model distributed systems and distributed problems, how to design distributed and multiprocessor algorithms, and how to formally verify the correctness of such algorithms. We will also learn how to show that certain problems cannot be solved efficiently or are even impossible to solve. Topics include: distributed algorithms, shared-memory algorithms, fault-tolerance, and verification.
Department-Specific Course Categories
Computer Science