CS455: Introduction to Distributed Systems

[Announcements] [Syllabus] [Grading] [Schedule] [Assignments]



Spring 2017

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 be based on Spark.

Instructor Lecture Coordinates

Shrideep Pallickara
Office: Room 364, Computer Science
Office Hours:
9:00-10:00 am Friday or by appointment
E-mail: cs455 {aT} cs.colostate.edu
(with the obvious change)
Tel: 970.492.4209

Graduate Teaching Assistant
Naman Shah
Office Hours in CSB 120: 3:00-5:00 pm Tuesdays and Wednesdays
E-mail: cs455 {aT} cs.colostate.edu


TTH: 12:30-1:45 pm

Labs : 4:00-4:50 pm on Fridays

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