15-446 Syllabus

Table of Contents

Course Meetings

  • 10:30 - 11:20 Mondays, Wednesdays, and Fridays in PH A18-C

Course Description

This course focuses on the design, implementation, and management of distributed systems. It covers fundamental topics such as concurrent programming, coordination, synchronization and election, distributed agreement, replicated data management, checkpointing and recovery, and directory and discovery services. Beyond techniques and algorithms, it exams the design and implementation of real-world and research distributed systems, including file systems, shared memory, databases, and mobile applications. Distributed objects and middleware are part of the course, and tools such as Java RMI, ONC RPC, XML/SOAP, and CORBA will be discussed and used within course projects.

Prerequisites

15-213, or permission of instructor

Textbook

Please purchase exactly one of the following textbooks.
  • Coulouris, G, Dollimore, J., and Kindberg, T., Distributed Systems: Concepts and Design, 3rd ed, Addison-Wesley, 2001. ISBN: 0-201-61918-0

  • Chow, R. and Johnson, T., Distributed Operating Systems and Algorithms, Addison-Wesley, 1998 (with corrections). ISBN: 0-201-49838-3

Both books are available at the book store, as well as many on-line and brick-and-mortar retailers. The course follows neither book exactly. Most topics are covered in both books, but some topics are covered in only one or neither. To the maximum extent possible, reading will be keyed to each book.

The two books have different strengths and flavors. Depending on your taste and your interests, there is likely to be a best choice for you. The "Coulouris book" is in many ways a "systems-first" book from the perspective of a system builder. Algorithms are explained in the context of real systems and real problems. The "Chow book" does begin with a section on "Distributed Operating Systems" that addresses system-building, but the exposition and perspective is more in line with theoreticians than practioners. But, to its strength, the second part of the "Chow Book" is an excellent, well-written and clear description of distributed algorithms, that is likely to appeal to those with a more theoretical or algorithmic bend.

I'd suggest that you take a look at the second half of the "Chow book" and the second half of the "Coulouris" book, and pick the one that is most comfortable for you. If you're on your fence, I'd suggest finding a friend who is also on the fence -- and making complimentary selections.

If neither of these two options appeal to you, there is another option:

  • Tanenbaum, A. and van Steen, M., Distributed Systems: Principles and Paradigms, Prentice Hall, 2003. ISBN: 0-13-088893-1.

This book is perhaps the easy to read among all of the texts. Its explanation of the algorithms and approaches is the most intuitive, even if the least rigorous. It is an excellent book -- and perhaps a good choice if neither of the others is at all appealing. But, it doesn't match this course in organization or content quite as well as the other two.

The content from this course draws from each of these three texts to some extend, and also from several other sources.

The course's Web site is http://www.andrew.cmu.edu/course/15-446.

Instructor

Name: Gregory Kesden
Email: gkesden@cs.cmu.edu
Url: http://www.cs.cmu.edu/~gkesden
Office: WeH 8020 (right in front of the elevators on the 8th floor)
Office phone: 412-268-1590
Office hours: Please see my regular schedule

Please note:

Office hours are times that I do my best to reserve exclusively for "drop in - no appointment" meetings with students, but I am often available at times other than office hours.

Please don't hesitate to call or drop by at other times, or to request an appointment. Office hours are convenient -- if they are convenient for you. If not, please, please, please email or call for an appointment, or just take your chances and drop by -- if I'm not teaching, I'm likely here.

Please remember -- I'm here to help. I appreciate the opportunity to serve you. Do give me the chance.

Some students have found it useful to finger me on the departmental cycle server linux1.gp.cs.cmu.edu. If I have a reasonably short idle time and I'm logged in from a CS IP or an andrew wireless IP, I'm likely in my office.

Please note: Both my home and office phones forward to my cell phone. Feel free to call anytime at any hour. Generally speaking, I turn my phone off when it is inconvenient to answer.

Course Attendance

Attendance is expected at all classes. You are responsible for everything conveyed during class, even if you are absent. It is suggested that you make friends with your classmates -- they can be helpful should you miss class. In the event that you miss class, you should contact one of these individuals promptly to ask for help.

The course staff is not responsible to help you with material or procedural announcements from which you opted out by electively missing class.

Need Help?

I can't stress enough that the course staff, the instructor is dedicated to providing you the highest possible levels of support: inside of the classroom and outside. Please, if you need help, do ask.

Important: It is strongly suggested that you email both of us with questions. This will assure you of the fastest possible answers.

Assignments and Grading

  • Exams: 50%: Equally divided among three (3) exams

  • Projects: 50%: 1-2 person teams, divided among four (4) projects.

Grade Corrections

We try to be very, very careful about scoring your work and maintaining your grades. But, we are human and will make mistakes. If you have any questions about grading, please see any member of the course staff.

If possible, s/he will help you "on the spot". But, if s/he want to discuss the issue with other members of the staff, which does occur in many cases, he or she might make a copy of your work and/or ask you to write down or email your concerns. Please don't be alarmed -- this is just to try to ensure correctness and consistency among staffers, as well as prevent miscommunication. If you are asked to provide a copy of the work or feedback in question, or to provide your concerns in writing or email, you are required to do this before your concern can be addressed.

Please keep copies of all of your graded work, electronic submissions, and electronci feedback, until you receive your final course grade and are satisifed that it is correct. Without the original work and the grading information, it is more difficult and time consuming to correct errors.

In general, grading concerns should be addressed within two (2) weeks. In the sepcial case of the final exam, they should be addressed with one (1) year. The course staff, at its discretion, may refuse to reconsider grades outside of this time period.

Should concerns arise outside of these time periods, but during the semester, please do contact any member of the course staff -- we want to be reasonable and will do our best, within ourt discretion, to help. Should concerns occur after the end of the semester, please contact the instructor. Or, in the unlikley event that he is no longer at the University, on leave, or otherwise inaccessible, contact an administrator in the Computer Science department.

You do have the right to appeal final course grades. This can be done informally, beginning with the instructor, and then to the student's academic dean and/or the academic dean in the home department. It can also be done formally using the policy outline in the Academic Regulations.

Collaboration

It is suggested that you form study groups as soon as possible. These groups generally work best if there are between three and five people involved, but sometimes pairs or slightly larger groups can work well. Typically the most effective study groups meet once per week for a few hours, or a couple of times each week for a couple of hours each meeting. For study groups to be effective, each member must work indivudally with the material in-between meetings such that s/he has something to contribute as well as questions to drive the discussion.

Unless otherwise specified, all assignments should be completed individually. In other words, it is okay to collaborate in studying the course material, but the "writing on the page" or the "code in the lab", as examples, should be your own "thought product".

If portions of your individual assignments have been significantly influenced by someone else, you should prominently give them credit for their contribution. Proper attribution is critically important -- and is an absolute defense against charges of "Academic Dishonesty"

Failure to provide proper recognition for the contributions of others towards any graded work may be, at the discretion fo course staff, considered Academic Dishonesty under the applicable University, School, Department, and/or Intro Group policies.

The Academic Regulations are the only authoritative source for information regarding the University police on Academic Dishonesty, and related procedural matters. But, the following is an informal summary:

  • An instructor can charge a student with academic dishonesty and impose a penalty within the course, including an "R" grade.

  • The instructor informs the University of the charge, where it is recorded. If it is a first-offense, the University takes no further action. If it is not, a University committee is convened. For other than first offenses, the Committee, not the instructor determines the penalty, which can include academic actions such as expulsion or suspension, as well as less-severe actions. The student may appear at this hearing, and the instructor might also ask to appear or be asked to appear.

  • Even on a first offense, the instructor can ask the University to convene a Committee as discussed above. This might be done, for example, in the case of a particularly flagrant case, or under atypical cicumstances.

  • The student has the right to appeal an instructors finding of academic dishonesty. Such an appeal is heard by the same Committee as discussed above. In the event that both the student and faculty member request a Committee, the same Committee will hear both.

  • University procedure provides for the appeal of decisions by the Committee.

  • In the event that the instructor charges a student with Academic Dishonesty, it is suggested that the student consider the totality of the circumstances calmly and rationally and seek advice from the instructor -- as well as third parties, such as the student's advisor, academic dean, or a dean of student affairs. It is may not be in the student's best interest to take a rash action, such as attempting to drop the course.

  • Students who are charge with Academic Dishonesty should be aware that there will be no prejudice against them in the course, beyond the penalty directly imposed, as a result of the charge, or of any appeal.

Late Work

You have five (5) "Late Days" for use on assignments this semester. You can use one day on each of five assignments, five days on one assignment, &c. There are no half days -- an assignment 1 second late requires the use of a full late day.

These late days are not "procrastination days". They are instead designed mcuh like "personal days" at work to handle the little things that come up during the semester: short illnesses, injuries, visiting family or friends, a burst of work in other classes, doctors vists, &c.

The use of these days is completely at your discretion -- but, once they are gone, they are gone. That's it. The course staff cannot give you more. Late work is not accepted, other than through the use of "Late Days".

There is, of course, the possibility that exceptions to this policy will arise. We certainly hope that nothing incapactiating will happen to any of you. But, in the event that there is some major life event including major medical issues, emotional problems, family problems, &c, the course staff stands ready to work with you, as appropriate.

But, because these events are major events that likely will affect more than one class, we refer these circumstances to other University officials, typically academic deans, deans of student affairs, and/or assigned academic advisors.

In the event that you need help of this kind, please see a member of the course staff, and advisor dean, or other appropriate University offical. If you contact us, we'll likely begin by contacting your advisor or dean. But, regardless who you contact first, we'll work together with your academic unit and/or student affairs, and (most importanbtly) you, to do the Right Thing. We are, in fact, here to help.

No Email Attachments

Unless it is speciifcally requested, do not send the instructor email with attachments. Anything that is not of type "text/plain" is automatically filtered and sent to the bit bucket. Although this will not reach the instructor in order to cause him any pain -- many students have found it to be a quite frustrating experience.

Instead, we've got a distributed file system on campus -- use it. Place your files into AFS, set the ACL so the instructor can see them, and send an email with the location and your request.

Recording

High-fidelity recordings of class, including any audio and/or video recordings, regardless of the media or format, and regardless of the intended or actual use, are not permitted without prior written permission of the instructor. The class will be notified in advance should any such recording be approved. The penalty for violating this policy is an “R” in the course. If you are not comfortable with this, drop the course now. Studnets have no right to record classes under any University policy.

This policy is intended to protect the privacy of the students. No student should run the risk of potential employers finding a naïve question or incorrect answer on the Web. The classroom is a learning environment, not an exhibition. Rather than attempt to control the uncontrollable or distinguish between neutral and detrimental uses, all recording is prohibited. Experience has shown that, excluding special cases such as use by students with disabilities or distance learners, undergraduate students do not improve their performance through the use of high fidelity recordings.

Electronically Mediated Communication -- "A.M. Memorial Policy"

You are not permitted to engage in any electronically mediated communication during class -- the penalty, even for a first offense, is an "R" in the course. No TXTing. No IMing. No email. No surfing the Web. No net games. No talking on your cell phone. You get the idea: If something is being communicated and anything even vaguely electronic is involved, you flunk. If you are not comfortable with this -- find a different section.

This might seem extreme to you, but it necessary. The ubiquity and pervasiveness of these technologies is threatening the classroom dynamic. Unless it is controlled, it will become cultural -- and the loss to education permanent and tremendous.

Since it is somewhat difficult to prove allegations of this kind from the front of the classroom, the penalty is severe to act as a deterrent. Other instructors, student assistants, staff members, and/or other trusted individuals may be asked to monitor the classroom from various points of observation to aid in the enforcement of this policy and still photographic evidence may be u acquired and used to document violations.