Skip to main content

Summer and Fall Course Registration open now. Register today to get the courses you need!

ICS 640 Distributed Algorithms

Study of distributed algorithms that are designed to run on networked processors and useful in a variety of applications., such as telecommunications, information processing, and real-time process control. Specific algorithms studied include leader election, distributed consensus, mutual exclusion, resource allocation, and stable property detection. Both asynchronous and synchronous systems will be covered and fault tolerance will be the major theme. Algorithms will be analyzed for complexity and proofs of corrections will be studied.

Special information

First day attendance is mandatory.Note: Graduate standing. Recommended: ICS 441 Theory of Computation. Note: Students are responsible to both be aware of and abide by prerequisites for ICS courses for which they enroll, and will be administratively dropped from a course if they have not met prerequisites.
4 Graduate credits

Effective January 10, 2005 to present

Learning outcomes


  • Apply distributed algorithms to solve practical problems in distributed systems.
  • Model distributed systems appropriately: as asynchronous, synchronous, or partially synchronous.
  • Take into account fault tolerance issues in the design of distributed algorithms.
  • Analyze the time and message complexity of distributed algorithms.
  • Create solutions to commonly occurring distributed system problems.
  • Demonstrate expertise in reading peer-reviewed papers in distributed algorithms and explain them in writing.
  • Understand correctness proofs of distributed algorithms.