1 Course overview. Synchronous networks. Leader election in synchronous ring networks. Homework 1a out
2 Leader election in rings. Basic computational tasks in general synchronous networks: leader election. Breadth-first search. Broadcast and convergecast. Shortest paths.  
3 Spanning trees. Minimum spanning trees. Homework 1b out
4 Fault-tolerant consensus. Link failures: the two generals problem. Process failures (stopping, Byzantine). Algorithms for agreement with stopping and Byzantine failures. Exponential information gathering.  
5 Number-of-processor bounds for Byzantine agreement. Weak Byzantine agreement. Time bounds for consensus problems.

Homework 1 due

Homework 2a out

6 k-set-agreement. Approximate agreement. Distributed commit.  
7 Asynchronous distributed computing. Formal modeling of asynchronous systems using interacting state machines (I/O automata). Proving correctness of distributed algorithms. Homework 2b out
8 Non-fault-tolerant algorithms for asynchronous networks. Leader election, breadth-first search, shortest paths, broadcast and convergecast.  
9 Spanning trees. Gallager et al. minimum spanning trees.

Homework 2 due

Homework 3a out

10 Synchronizers. Synchronizer applications. Synchronous vs. asynchronous distributed systems. Homework 3b out
11 Time, clocks, and the ordering of events. State-machine simulation. Vector timestamps.  
12 Stable property detection. Distributed termination. Global snapshots. Deadlock detection.

Homework 3 due

Homework 4a out

13 Asynchronous shared-memory systems. The mutual exclusion problem. Mutual exclusion algorithms.  
14 More mutual exclusion algorithms. Bounds on shared memory for mutual exclusion. Resource allocation. The Dining Philosophers problem. Homework 4b out
15 Shared-memory multiprocessors. Contention, caching, locality. Practical mutual exclusion algorithms. Reading/writing locks.  
16 Impossibility of consensus in asynchronous, fault-prone, shared-memory systems.

Homework 4 due

Homework 5a out

17 Atomic objects  
18 Atomic snapshot algorithms. Atomic read/write register algorithms. Homework 5b out
19 List algorithms: locking algorithms, optimistic algorithms, lock-free algorithms, lazy algorithms.  
20 Transactional memory: obstruction-free and lock-based implementations.

Homework 5 due

Homework 6a out

21 Wait-free computability. The wait-free consensus hierarchy. Homework 6b out
22 Wait-free vs. f-fault-tolerant atomic objects. Boosting fault-tolerance.  
23 Asynchronous network model vs. asynchronous shared-memory model. Impossibility of consensus in asynchronous networks. Failure detectors and consensus. Paxos consensus algorithm.

Homework 6 due

Homework 7 out

24 Self-stabilizing algorithms  
25 Timing-based systems. Modeling and verification. Timing-based algorithms for mutual exclusion and consensus. Clock synchronization. Homework 7 due