CSCI 4510/6510: Distributed Systems and Algorithms

General Information

Instructor: Stacy Patterson (sep@cs.rpi.edu)
Instructor Office Hours: T 1pm - 3pm in Lally 301

TA: Linh Tran (tranl3@rpi.edu)

Lectures: MR 12pm - 1:50pm

Quiz Schedule

Quizzes will be held during the scheduled lecture time.

Course Description

This course explores the principles of distributed systems, emphasizing fundamental issues underlying the design of such systems: communication, coordination, synchronization, and fault-tolerance. We will study key algorithms and theoretical results and explore how these foundations play out in modern systems and applications like cloud computing, edge computing, and peer-to-peer systems.

Projects

The projects will be evaluated using Submitty’s autograding feature for networked applications. Submitty uses Docker to deploy and test your application. It is not necessary for you to use Docker to test your code, but it is a good idea. Below are instructions for configuring and using Docker, as well as instructions for replicating the Submitty test environment on your own machine. See the Project 1 description for more information on how to configure your projects.

Project 1

Project 2

Project 3 (due April 10)

Extra Credit Project (due April 18)

Papers and Readings

Some papers are behind a pay wall and can only be accessed from the RPI network.

Back Quizzes

These quizzes are provided to give you some idea of the types of questions that may be asked. The specific topics and the order in which they are presented may vary somwhat from year to year.