CS 450 Distributed Systems • 5 Cr.


The course introduces the fundamental concepts that enable the building of fast, scalable, and distributed systems. The students will gain an understanding of the abstraction, design and implementation techniques to construct highly available and fault-tolerant services. Topics include server design, network programming, naming, storage systems, security, and fault tolerance. Prerequisite: CS 300 and admission to BS CS program, or instructor's permission.


After completing this class, students should be able to:

  • Distinguish network faults from other kinds of failures.
  • Classify different distributed programming models
  • Discuss how to deal with the shared state between separate system processes.
  • Explain the tradeoffs among overhead, scalability, and fault tolerance when choosing a stateful vs. stateless design for a given service.
  • Design and implement distributed systems