CS455: Introduction to Distributed Systems

csu-logo
red-line
[Announcements] [Syllabus] [Grading] [Schedule] [Assignments]

[Wiki]

[Home]

Spring 2014

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-logo

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
    components
  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.


Prerequisites
Undergradutates: CS370 {strictly enforced}


Term paper
This class is a capstone course - and as such, a written term paper is required. The term paper will involve three deliverables and will be restricted to a topic in the area of distributed systems.


Instructor Lecture Coordinates
 

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


Graduate Teaching Assistant
Jared Koontz
Office Hours in CSB 120:
Wednesdays 10:00-11:59 am && Fridays 1:00 -3:00 pm
E-mail: koontz {aT} cs.colostate.edu

Lab Lectures: 4:00-5:00 pm CSB 130 on Mondays

 

TTH: 9:30-10:45 am
CSB 130

 

 


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