4005-730 Distributed Systems - Course Syllabus

Last Updated 2010/11/29 10:29:29

Update history:

2010/11/29: initial version

Name: Warren R. Carithers
Office: 3617 Golisano (70-3617)
Phone: (585) 475-5393
Email: wrc AT cs.rit.edu

1. Course Overview

1.1. Course Goal

This course serves as an introductory survey of the broad area of distributed systems. In contrast to the Data Communications and Networks courses which focus on low-level network protocols, the Distributed Systems course focuses on high-level issues involved in designing distributed applications. Students are exposed to distributed system middleware, such as distributed objects and tuple spaces, and gain experience working with the middleware by doing programming projects. Students also analyze current distributed systems research and present written and oral reports of their findings. Together, the Data Communications and Networks I course and the Distributed Systems course give the student a complete introduction to the low-level and high-level aspects of distributed systems, preparing the student for further in-depth study in succeeding courses.

1.2. Course Outcomes

1.3. Course Prerequisites

The prerequisites for this course are:

In essence, you need to be comfortable with these topics:

These are prerequisites, not corequisites - to succeed in this course, you should have already passed these courses, or their equivalents. Taking them at the same time as this course is not sufficient. See me immediately if you are missing one or more of the prerequisites, or you may be dropped from Operating Systems I without further warning!

2. Books

The optional textbook for this course is Distributed Systems: Principles and Paradigms, Second Edition, by Tanenbaum and Van Steen, Prentice Hall, 2007.

Programming assignments you do for this course will be done in Java. Although one is not required, having a Java textbook is a good idea.

3. Grades

Your final grade will be based on the following components: a team project, two individual projects, and the final exam. The distribution between these components is:

  5% Team formation
  5% Team presentation attendance
  20% Team presentations
  20% Team deliverables
  15% Programming project 1
  15% Programming project 2
  20% Final exam

3.1. Exams

There is one exam schedule for this course, a two-hour comprehensive final exam. This is tentatively scheduled as follows:

Last updated: 2010/11/29 11:18:14

3.2. Programming Projects

There will be a set of two programming assignments during the quarter. These are individual assignments, and are separate from the team project. More information about these will be provided later in the quarter.

3.3. Team Assignment

In addition to the graded assignments described above, you will do a research investigation as part of a team of two or three persons. Your grade will be based on the following details:

More details are provided on the team project web page.

4. Academic Conduct

Academic dishonesty will be dealt with in accordance with DCS and RIT policies.

5. Notes