[ Home | Schedule | Labs | Policy ]

CSE 535 Distributed Systems (Fall 2020)


Course information

Distributed systems help programmers aggregate the resource of many networked computers to construct highly available and scalable services, such as peta-byte storage, massively parallel computation. This class teaches the abstractions, design and implementation techniques that allow you to build fast, scalable, fault-tolerant distributed systems. Topics include multithreading, network programming, consistency, naming, fault tolerance, and security and several case studies of distributed systems. The course consists of lectures and a series of programming labs.


  • Undergraduate Operating Systems or Computer Systems Organization
  • System-level programming experience

Useful Books

The following books may help provide background help. None of them are required. They are listed in rough order of usefulness.

  • Principles of Computer System Design. Jerome Saltzer and M. Frans Kaashoek, Morgan Kaufmann.
  • Distributed Systems: Principles and Paradigms, Andrew Tanenbaum and Maarten van Steen, Prentice Hall.


The topics and many materials of this class are from the distributed systems class taught at MIT and NYU.