CSCI 4510/6510 - Distributed Systems and Algorithms - Fall 2020

General Information

Instructor: Stacy Patterson
Office Hours: T W 3pm - 4pm or by appointment

TA: Lorson Blair
TA Office Hours: M 3pm - 4pm, W 1pm - 3pm

Lectures: T F 12:20pm - 2:10pm

Lectures will be delivered via WebEx Meetings during the scheduled lecture time. They will also be recorded, and the links to the recorded lectures will be posted in Submitty.

Office hours are managed through the Submitty Office Hours Queue. The access code is dsa.

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.


  • CSCI-2300: Intro. to Algorithms
  • CSCI-4210: Operating Systems
  • Exams

    The dates of the exams are listed below. Lecture is cancelled on the exam dates.


    The first three 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 - due 9/20/20 at 11pm

    Project 2 - due 10/12/20 10/18/20 at 11pm

    Project 3 - due 11/15/20 at 11pm

    Project 4 - due 12/11/20 at 11pm

    Pseudocode and Resources

  • Wuu Bernstein Replicated Dictionary Algorithm
  • Raymond's Algorithm, annotated version
  • Synod Algorithm
  • Byzantine Generals Algorithm
  • Papers and Readings

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