This is a notes repository for CSCI 351: Distributed Computing. These are the lecture notes I assembled for that semester. This page is publishing the notes to enable easier sharing.
- Set 1: Intro & Models
- Set 1.1: MPI Intro
- Set 2: Leader Election
- Set 2.2: Beeping Leader Election – see https://link.springer.com/chapter/10.1007/978-3-662-45174-8_15
- Set 3: Mutual Exclusion
- Set 4: Consensus
- Set 4.1: Wait-Free Synchronization – see https://dl.acm.org/doi/10.1145/114005.102808
- Set 5: Clocks
- Set 6: Simulations
- Set 7: Register Strengthening
- Set 7.1: ABD – see https://dl.acm.org/doi/10.1145/93385.93441 and https://dl.acm.org/doi/10.1145/200836.200869
- Set 8: Failure Detectors
- Set 9: Randomized Consensus
- Set 10: Blockchains
- Set 11: Final Review Exercises
These notes are based on Hagit Attiya and Jennifer L. Welch’s Distributed Computing: Fundamentals, Simulations, and Advanced Topics, as well as the linked papers. You are welcome to use these notes for your own education, to teach from, or to modify for your own purposes, as long as you provide credit. I’d also appreciate a quick note if you find these helpful!