CS455: Introduction to Distributed Systems

[Schedule] [Assignments] [Infospaces] [Grading] [Syllabus]


[Announcements] [Home]

Spring 2022

CS 455 covers fundamentals issues involved in building distributed systems. The course examines issues related to concurrent programming, thread pools and safety, non-blocking I/O, scalable server design, file system design, distributed mutual exclusion and deadlock detection, consensus and consistency, pipelining schemes, distributed graph algorithms, distributed shared memory, distributed objects, and MapReduce.

CS455 is geared towards senior undergraduate students and also first-year graduate students who have not taken such an introductory course. Introduction to distributed systems builds upon system concepts related to processes, storage management and critical sections in centralized single-CPU systems. Students are expected to have seen these topics in CS 370.

Course Objectives
By the end of the course, students should be able to

  1. Build scalable servers using thread pools that leverage lightweight concurrency primitives
  2. Understand issues related to the role of order and distributed mutual exclusion
  3. Design and build file systems from the ground-up
  4. Write MapReduce programs that execute concurrently on multiple machines
  5. Design efficient data representation formats for communications between distributed
  6. Harness foundational concepts of distributed graph algorithms
  7. Understand the role of overlays in content disseminations
Extensive experimentation through programming assignments in Java is a principal activity of this course. These assignments will focus on developing skills that are immediately transferrable to building real-world systems.

Undergradutates: CS370 {strictly enforced}

Term project and paper
This class is a capstone course - and as such, a written term paper is required. The term project will involve performing analytics or mining at scale over spatial datasets using AI/ML libraries and ecosystems -- e.g., TensorFlow, PyTorch, Spark, etc.

Professor Lecture Coordinates
  Shrideep Pallickara
Office: Room 364, Computer Science
Office Hours:
9:00-10:00 am Friday
E-mail: compsci_cs455 {aT} colostate.edu
(with the obvious change)
Tel: 970.492.4209

Graduate Teaching Assistant
Shiekh Mannan
Office Hours in CSB 120:
2:00-4:00 pm Monday
2:00-4:00 pm Wednesday
E-mail: compsci_cs455 {aT} colostate.edu

Undergraduate Teaching Assistant
JeanMarc Ruffalo-Burgat
E-mail: compsci_cs455 {aT} colostate.edu

  MW: 9:00 - 10:15 am

Labs : 9:00-10:00 am on Fridays

Department of Computer Science, Colorado State University,
Fort Collins, CO 80523 USA
© 20222 Colorado State University
*The course-logo is an image from Microsoft's Online library