CS 85: Distributed Systems, Spring'08

Schedule | Course Description | Course Goals | Grading | Reading List | Class Resources
Professor: Tia Newhall
Semester: Spring 2008
Time: 11:20-12:35, TR
Location: Science Center 246

Office hours: 2-4 W and by appointment

Course Description

This course covers a broad range of topics related to distributed systems. Distributed systems consist of a set of PCs or workstations connected by a network, that run special software that allows for transparent sharing of the distributed computing resources and data.

We will investigate ways in which computer resources connected by a network can be used and shared. This includes using them for parallel computing (ex. cluster and grid systems), for resource and file sharing (ex. grid systems, BitTorrent), for data and communication (ex. WWW, digital libraries, IM, email), and for availability (ex. when a Google server goes down, how does Google completely hide that fact from you?).

Class will be run seminar-style; each week students will read research papers that we will discuss in class. We will read papers that cover the theory of distributed systems as well as the implementation of systems to support distributed computing.

During the first part of the course, we will examine different parallel and distributed programming paradigms and you will get some practice writing programs using these different paradigms. In distributed systems, parallel computing is used in cluster and grid environments, and distributed computing is used in client-server systems such as the WWW and peer-to-peer systems.

During the second part of the course, students will propose and carry out a semester-long research project related to distributed computing. The department's gigabit cluster, as well as the CS lab machines, are available for course projects.

Previous course work in Operating Systems, Networking, Databases, or Architecture is helpful, but not necessary for taking this course.

Course Goals


Reading List

There is no textbook for this class. Instead, we will read papers from the Reading List.

Class Schedule

1 Jan 22   Distributed Systems Overview week 1 readings
2 Jan 29   Communication and System Design week 2 readings
homework 1
3 Feb 05   Message Passing, RPC week 3 readings
homework 2
4 Feb 12 Course Project Information Time, Event Ordering, Distributed State week 4 readings
homework 3
Course Project Assignment
5 Feb 19   Distributed File Systems week 5 readings
6 Feb 26   Grid Computing week 6 readings
7 Mar 04 Project Proposal due (Mar 06) Project Work Week week 7 assignments

Mar 11

Spring Break

8 Mar 18   Peer-to-Peer Systems week 8 readings
9 Mar 25   Security, Distributed Shared Memory week 9 readings
10 Apr 01 Project Progress Report due (Apr 03) Fault Tolerance week 10 readings
Project Progress Report
11 Apr 08   MapReduce week 11 readings
12 Apr 15 Project Progress Report due (Apr 17) Cluster Computing week 12 readings
Project Progress Report
13 Apr 22   Process Migration, Scheduling week 13 readings
14 Apr 29   Individual Project Group Meetings and Final Project Presentations week 14 scedule
final project report, presentation, demo
15 May 06 Final Project Report due by noon (May 09) Finals no reading

Distributed Systems, Parallel systems, and Cluster links

Reading, Writing, Presentation Advice

Parallel and Distributed programming links