[Rice University] COMP 413: Syllabus - Fall 2003


Instructor

Peter Druschel, druschel@cs.rice.edu, DH 3007, x4664.

Lectures

TTh 1300-1420 (tentative), room TBD

Enrollment

Enrollment is limited to about 15 students.

Office hours

By appointment (please use email).

Labbies

Alan Mislove, amislove@cs.rice.edu.
Atul Singh, atuls@cs.rice.edu.

Questions and Answers

Questions of general interest should be posted to the rice.owlnews.comp413 newsgroup. Answers will be posted as soon as possible.  Other questions should be directed to the labbies by sending mail to comp413.

Secretary

Melissa Cisnero, mcisnero@cs.rice.edu, DH 3122, x4834.

Prerequisites

COMP 312,  COMP 421,  or permission of instructor.  Software design experience, programming proficiency in Java and familiarity with design patterns is absolutely required. Students will undertake a real software design project and be expected to deliver a working product. Therefore, students must be committed to delivering a quality design, robust, well-documented and thoroughly tested software. Also, students must be able to deal with flexible requirements, deadlines and shifts in the schedule to address unforeseen problems that are likely to arise in any real project.

Time Management

The project in this course requires a great deal of initiative, motivation and energy. Each team is asked to explore and study a different technical area on its own, rather than merely applying material that was previously covered in the lectures. Moreover, the course project depends on the timely completion and correctness of each team's component. It is therefore imperative that students manage their time in a responsible manner and ensure that the team makes steady and adequate progress towards completing its component.

Readings

You might want to refer to one or more of the following books for background. If you're considering the purchase of a general text on distributed systems, I recommend one of the first two books (the first book is longer and covers practical aspects in more detail; the second is stronger in its treatments of distributed algorithms). If you already own the textbook used in COMP 421 (Tanenbaum's Modern Operating Systems), the coverage of distributed systems in the second half of that book will do. We will also provide additional reading materials relevant to the project.
 

 

Lecture Notes

Lecture notes and handouts will be made available on the Web at  www.cs.rice.edu/~druschel/comp413/lectures.These notes are not necessarily self-contained, complete, or coherent. They are meant to aid you in your own note taking. They are certainly not a substitute for attending class. Lectures will cover material on distributed systems architecture, communication, naming and directory services, state replication and coherence, synchronization, atomic transactions, fault-tolerance and security.

Project

The project in this course is to build ObjectWeb, a powerful WWW-like system based on distributed objects and a peer-to-peer infrastructure. This project exposes students to key problems and solutions that one encounters in building a distributed application or system, and provides hands-on experience with the design of distributed systems using state-of-the-art tools and middleware (Java, distributed objects, p2p substrates).

Students will work in teams and each team will work on a different component (subsystem) of the overall project. The success of the overall project depends on the quality of each component. Therefore, it is critical for the overall success of the course project that each team does its job well. Teams are expected to deliver a component that satisfies its specification, is robust, well documented, reusable, readable and maintainable by people other than the designers/implementor.

There are three steps. The first step is to develop, through discussions in and outside of class, a specification for the component your team will develop. The component specification is the contract that ensures interoperability between the components designed by different teams, and it is the standard to which the completed component is held. The second step is to design the component, based on information obtained from the lectures, readings and group self study. The result is a specification and design document that will be linked from the course page. The specification and design will be presented in class by the groups in order to inform the rest of the class of the team's findings, to get feedback and to eventually get approval of the specification and design, after possible revisions.

The final step is to implement, test, and evaluate the component; produce documentation for the component, describing its use, structure and performance; and to integrate the components developed by different teams and to test, evaluate and demonstrate the resulting system.

Exams

There will be a midterm and a final exam. The exams will be take-home and open book, and will cover material from lecture, required readings, and the project. There may also be some homework assignments.

Honor Code Policy

All assignments in the course are conducted under the Rice Honor Code.  Students are encouraged to talk to each other, the labbies, the instructor, or anyone else about the assignment. Consulting another student's homework solution is prohibited, and submitted solutions may not be copied from any source. However, students are allowed to incorporate existing code from any source into their project components, provided that they disclose the nature and source of the incorporated code in the design documentation.

Grading

A tentative composition of the grade is 50% for the project, and 50% for the exams. The score for the project will be determined as follows:

    a) 50% for correctness (i.e., compliance with the approved specification);
    b) 20% for clarity and completeness of the specification, design and documentation, as shown in class presentation and documents;
    c) 20% for the overall success of the course project (not just the team's component!);
    d) 10% based on a self evaluation among the team members.

Students with Disabilities

Any student with a documented disability needing academic adjustments or accommodations is requested to speak with me during the first two weeks of class.  All discussions will remain confidential.  Students with disabilities will need to also contact Disability Support Services in the Ley Student Center.