Skip to main content

ICS 662 Distributed System Design

This course covers fundamental principles and theories on distributed and network operating systems, communication models, Client/Server architecture, and Peer-to-Peer paradigms. Group communication, synchronization, threads, processor allocations, fault tolerance, distributed shared memory, and case studies are also introduced.

Special information

Prerequisites: Graduate standing. 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.First day attendance is mandatory.
4 Graduate credits

Effective May 4, 2010 to present

Learning outcomes


  • Explain the central issues involved in the design of distributed systems.
  • Implement distributed algorithms using an appropriate programming language.
  • Understand current techniques and tools associated with distributed and network operating systems.
  • Apply distributed system concepts to the design of distributed systems.
  • Demonstrate expertise in reading peer-reviewed papers in distributed systems and explain them in writing.
  • Understand the role of central concepts such as load balancing and synchronization in different types of distributed systems such as database systems and operating systems.