CS 5414 - Distributed Computing Principles

Studies the abstractions and algorithms that constitute the foundations for implementing concurrent and distributed computing, with emphasis on supporting fault-tolerance. Topics vary to reflect advances in the field but typically include global state snapshots, causality and clocks (logical and physical), agreement and consensus, primary-backup and state-machine replication, quorums, and gossip. Students undertake a substantial software project to put these ideas into practice. Many students obtain additional project credit by co-registering in CS 4999 or CS 5999.