Distributed Systems


Course information

Distributed systems help programmers aggregate the resource of many networked computers to develop highly available and scalable services. This class teaches the abstractions, design and implementation techniques for building fault-tolerant, high performance distributed systems. Topics include multithreading, network programming, consistency, naming, fault tolerance, security.

This class is a graduate level seminar consisting of interactive lectures (discussing research papers) and a few programming labs. Prerequisites include undergraduate operating systems. Programming experience in C/C++ is important for the labs.


1. Undergraduate Operating Systems
2. Programming experience in C/C++ is important for the programming labs

Useful Books

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