UNIVERSITY OF WATERLOO

DEPARTMENT OF COMPUTER SCIENCE

 

CS454/654

Distributed Systems

 

Fall 2004

 

Instructor:

M. Tamer Özsu

Lectures:

MW 11:30 - 12:50 (MC 4042), 2:30-3:50 (MC 4020)

 

Office Hours:

W 10:00 – 11:00 AM, or by appointment

 

Office:

 DC 3350, x4043 (only very urgent matters by phone)

 

Email:

 tozsu@db.uwaterloo.ca

Teaching Assistants:

Basem Shihada

 

 

 

Office Hours:

 F 11:30-12:30PM

 

Office:

 DC3326, x. 6238 

 

Email:

 bshihada@bbcr.uwaterloo.ca

Jialin Song

 

 

 

Office Hours:

M 1:30-2:30PM

 

Office:

DC 3565, x. 2529

 

Email:

j8song@uwaterloo.ca  

Herman Li

 

 

 

Office Hours:

R 4:00-5:00 PM

 

Office:

DC 3590A, x. 7714

 

Email:

hyh2li@uwaterloo.ca

Brent Ishibashi

 

 

 

Office Hours:

T 10:00-11:00AM

 

Office:

DC3335B, x. 5897

 

Email:

bkishibashi@uwaterloo.ca

On-Line Information:

Course home page: http://db.uwaterloo.ca/~tozsu/courses/cs454 

Course newsgroup: uw.cs.cs454

RequiredTextbook:

A.S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms, Prentice-Hall, 2002.

CS 454/654 Distributed Systems Course Notes, these are available for sale at the bookstore and are also available online.

Other References:

G. Colouris, J. Dollimore, and T. Kindberg, Distributed Systems: Concepts and Design, 3rd edition, Addison-Wesley, 2001.

M.L. Liu, Distributed Computing: Principles and Applications, Addison-Wesley, 2004.

J. Kurose and K. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, 3rd edition, Addison-Wesley, 2005.

Prerequisite:  CS 354 (CS 350) and fourth-year standing in a Computer Science Major program. CS 456 is not a prerequisite, but provides information about the underlying networking facilities assumed in this course.

Antirequisites: CS 436, ECE 454.

Evaluation:              CS 454                                                CS 654                                         

Assignments        30% (3 ass.)           Assignments            22% (2 ass.)

                                    Midterm               30%                        Midterm                   20%

                                    Final                     40%                        Final                         40%

                                                                                                Project                      18%

                                    Assignments are not weighed equally; Assignments 1 & 3 is 8% each, 2 is 14%.

                                    For each of the above, there will be a deadline for appealing your grade.  No appeals will be considered after this deadline unless there is a medical or other excuse for absence during the appeal period. 

                                    Instances of academic dishonesty will be penalized according to CS policy.

                                    Late assignments will be accepted for 48 hours after the due date. For the first 24 hours, there will be a 5% penalty and for the second 24 hours, there will be further 5% penalty. No assignments will be accepted after 48 hours.

                                    The midterm exam will be in MC 2035 and 2038  on Wednesday, November 3 from 7-9 p.m.  The final exam will be scheduled by the Office of the Registrar.  To pass the course, a student must have a passing weighted average on the examinations.

Objectives:                The main objective of this course is to study the fundamentals of distributed computing. It focuses on the layer of software that needs to be built on top of computer networks to enable the development of distributed applications. The material will be presented in nine modules:

Module 0 -   Distributed computing systems, their characteristics, and desired functionality.

Module 1 -   Distributed computer system models and architectures.

Module 2 -   Overview of computer networks (only a short review).

Module 3 -   Distributed objects and remote object invocation.

Module 4 -   Distributed naming.

Module 5 -   Distributed file systems.

Module 6 -   Synchronization.

Module 7 -   Replication.

Module 8 -   Fault tolerance.

Module 9 -   Security

For more information, please consult the handbook description: http://www.math.uwaterloo.ca/CS_Dept/undergrad/handbook/cDescr/CS454.html.