CMPS 232: Distributed Systems

Spring 2005

Computer Science Department
University of California, Santa Cruz

Syllabus

Time: Tuesday & Thursday 4:00–5:45 PM
Location: Baskin Engineering 169
Instructor: Professor Ethan Miller (elm at cs·ucsc.edu)
Office & hours: E2-265
Prerequisites: CMPS 221
Readings: List of papers available online
Optional text: Distributed Systems: Principles and Paradigms, Tanenbaum and van Steen
Home Page: http://www.soe.ucsc.edu/classes/cmps232/Spring05/

Course objectives

The goal for this course is to provide an in-depth overview of research topics in distributed systems. Topics will include:

Issues in these topic areas will be illustrated through examples of real world distributed systems, including object-based systems, distributed file and storage systems, peer to peer systems, and distributed and clustered operating systems. Readings for the class will be taken from the current research literature and articles of historical significance.

Additional topics may be covered, depending on the interests of the students and the professor.

Web pages

All of the information for this class will be distributed via the Internet. The class home page is at the URL listed above, and is the starting point for lots of information about the class including readings lists, assignments, and notes.

Access to some of the class web pages is restricted to users on campus. In particular, papers can only be downloaded from a computer in the ucsc.edu domain. If you want to access restricted web pages or papers from off-campus, you can use the UCSC library proxy, also known as SlugLink (requires a library card / student ID).

Readings

A major component of this course will be the in-class discussion of papers on research in distributed systems. Typically, you will need to read two or three papers per class; the reading list is available online, and most of the papers are available as links from the reading list (though only to computers in the ucsc.edu domain). These papers should be read carefully, and a short summary of each article and a few questions or insightful comments about the material (at least 3 per paper) prepared for the class meeting in which the paper will be discussed. The summary of each article consists of brief answers to the following seven questions, and three comments or questions about the paper (the eighth item):

  1. What is the problem the authors are trying to solve?
  2. What other approaches or solutions existed at the time that this work was done?
  3. What was wrong with the other approaches or solutions?
  4. What is the authors' approach or solution?
  5. Why is it better than the other approaches or solutions?
  6. How does it perform?
  7. Why is this work important?
  8. Three or more comments/questions about the paper

The optional text will provide a textbook-style approach to the issues we will be covering. If your background in operating systems is less strong, you may wish to use the text as a companion to the papers we are reading. There will be no assigned readings in the text, but it's a very useful reference on distributed systems, and many of the papers we'll be reading are listed in the text's bibliography.

Course requirements

Because this is a seminar, the majority of the course work will involve the reading, class discussions, and the final project.

Paper summaries

Each student is expected to write a 1–2 paragraph summary of each paper, listing the important points made in the paper. The summaries for the papers assigned for a course meeting must be turned in before class by email to elm [at) cs.ucsc.edu. Summaries will be graded on a 0–2 scale (0 = not turned in, 1 = minimal effort, 2 = satisfactory). Students may find it useful to bring printouts of their summaries to class discussions.

Paper discussions (in-class)

Every student in the class will lead the class discussion of a few papers during the quarter. The exact number of papers "assigned" to each student will depend on the number of students in the class. Needless to say, you need to be in class on the that "your" paper is being discussed.

Final project

Students in the class must complete a research project in the general area of distributed systems. Both a paper describing the project and a poster presentation will be required. This project should be the results of somewhat original research (strongly preferred) or a strong survey of prior art in a focused area. Reporting work done for another course is not acceptable. If you wish to get an A in the class, you must do an original research project; a student who does a survey will receive a maximum grade of B.

There will be checkpoints every two weeks during the quarter to keep you on schedule to complete your project. The checkpoints are:

For each checkpoint, you're expected to submit a few paragraphs describing your progress. For the April 22nd checkpoint, please submit your bibliography. Obviously, the last two checkpoints require more work; they'll require a paper or poster

More details and sample project topics will be available during the first week of class.

Attendance

Class attendance is mandatory. Because this is a graduate class, I expect students to participate actively in class, and that's hard to do if you're not actually there. I won't take attendance at class (except as necessary to make the registrar happy), but you cannot pass if you miss too many classes. If you need to miss a class for a good reason, such as a conference or other research-oriented commitment, please see me in advance if possible.

Much of the course material, including assignments and lecture notes, will be posted on the class web pages. However, you're responsible for all material covered in class, whether or not it appeared on the Web site. If you miss a class, I suggest you ask either a fellow student or me to fill in any material you may have missed.

Grades

Your grades will be determined as follows:

You must turn in a final project in order to pass the class.

Collaboration vs. cheating

This is a graduate seminar—I expect that you will discuss the material with other students in the class and perhaps others outside the class. This is encouraged. However, all paper summaries must be your own. If you turn in a summary written by someone else, you will receive a -2 for that summary. If this happens more than once, you will fail the class and formal cheating procedures will be begun.

You're encouraged to use any resources (code, traces, etc.) you can get for your projects, as long as you properly attribute them in your paper. Science is built on properly crediting those whose work you use; failure to do this will not be tolerated. Improper use of others' work in your project will result in a failing grade in the class, but it's not as bad as improperly using others' work in your own (independent) research, which can earn you (relatively) permanent disgrace. In short, attribute everything! If you're not sure about the ethicality of something, feel free to talk to me before you do something.


Last updated 29 Mar 2005 by Ethan L. Miller (elm-at-ucscXd0tXedu)