course number instructor title
CS 6704 Eli Tilevich Software Support for Distributed Systems

The vast majority of software systems today are distributed in some fashion. To facilitate the construction of such systems, the modern development ecosystem features special abstractions, libraries, and frameworks that have been embraced by the software development community. Examples include Remote Procedure Call, Futures & Promises, Map-Reduce, Actors, Publish-Subscribe, CAP, Consistency, & CRDTs, etc.

In addition, software support for distributed systems remains an active research area, with new exciting results appearing regularly in major publications. In this seminar class, we will discuss classic papers and recent research results on the subject. We will also gain hands-on experience with representative tools used in the development of modern distributed systems.

For their term projects, students will be encouraged to apply the technical material learned in the course to their own research.