Metropolitan State University

ICS 640 : Distributed Algorithms

A. Course Description
Credits: 4
Lab Hours/ Weeks: Corequisites: None
Lecture Hours/ Week :  
MnTC Goals: None
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.
B. Course Effective Dates: 01/10/2005 - 08/16/2009 08/16/2009 - Present
C. Outline of Major Content Areas:
See Course Description for major content areas.
D. Learning Outcomes (General)
  1. Apply distributed algorithms to solve practical problems in distributed systems.
  2. Model distributed systems appropriately: as asynchronous, synchronous, or partially synchronous.
  3. Take into account fault tolerance issues in the design of distributed algorithms.
  4. Analyze the time and message complexity of distributed algorithms.
  5. Create solutions to commonly occurring distributed system problems.
  6. Demonstrate expertise in reading peer-reviewed papers in distributed algorithms and explain them in writing.
  7. Understand correctness proofs of distributed algorithms.
E. Learning Outcomes (MN Transfer Curriculum)
This contains no goal areas.
G. 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.