- (Jan 7, 2019) Please join Piazza for class notifications and discussions.
- (Jan 7, 2019) Please read the collaboration and academic integrity policy; Enrollment in this class suggests you have accepted the policy.
Asynchronous/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
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.