ICS 640

Distributed Algorithms

4 Graduate credits
Effective January 10, 2005 – Present

Graduation requirements this course fulfills

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

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.

Learning outcomes

General

  • 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.