CS677   Distributed Systems
Spring 2006

Overview Schedule Homeworks Resources

Instructor: V. Arun

Class: Tu-Thu 11:15am-12:30pm in LGRT321
Office: Mon 1:30-2:30pm, Fri 2pm-3pm, CS236
Course mailing list: cs677@cs.umass.edu

Teaching assistant: Chang Wang
Office: Thursday 1:30-2:30pm
Phone: 413-577-2206
Email: chwang@cs.umass.edu

 

Objectives

This course is about principles of distributed computing. The focus will be on fundamentals rather than high level system design. We will learn about some key ideas that have emerged as powerful building blocks in building distributed systems. We will learn about fundamental problems, designing protocols, reasoning about the correctness of protocols, impossibility results and how practical systems attempt to ameliorate them, and examples of these principles as applied to distributed systems today. This course will not cover Java, RMI, RPC, HTTP, TCP, CORBA, Jini etc. However, there will be a significant implementation component in homeworks and projects.

 

Prerequisites

Students should have taken undergraduate course on Operating Systems, Networks, and Algorithms. Typical computer science majors should do fine. Non CS majors will be expected to know about concepts such as mutual exclusion, programming with threads, programming with sockets, and proving properties about algorithms. You should also be comfortable programming in C, C++, C#, or Java. If you lack these prerequisites, please talk to me before registering for the course for grade.

 

Schedule


Grading


Grades will be determined as follows:

  • Class participation: 5%
  • Project: 10% for each phase (Total: 30%)
  • Homeworks: 25%
  • Midterm: 20%
  • Final: 20% or Research Project: 50%

The regular project option involves building a content distribution system that is architecturally a combination of a managed Akamai like system and a peer-to-peer Gnutella like system. More details will be put up in due time. The projects are typically expected to be done in groups of two although you are welcome to do it individually.

Students opting for a research project may define their own project, possibly related to their area of research, and use that in place of the regular project and final. Research projects will require a 2 page proposal in the second month and a project report at the end of the semester. I will meet individually with students taking up research projects.

 

Cooperation Policy

A homework is meant to be an individual effort. Projects done in groups are meant to be discussed with your partners only.

You may discuss a question's interpretation with a classmate, but not solution approaches. Discussing a solution approach is equivalent to scholastic dishonesty. You may use existing libraries, reference material available online, and operating system code. However, you should not use code or methods from someone else's project on a similar topic even if it is available online.


Acknowledgement: The material for this class liberally borrows from material for a similar class taught by Lorenzo Alvisi at UT Austin. Other sources include Prashant Shenoy and Ken Birman.