14-736(Distributed Systems) Syllabus

Course Meetings

  • Lecture: 11:30am -12:50pm ET Mondays and Wednesdays (CMU-PGH INI-DEC)
  • Lecture: 6:00pm -7:20pm ET Tuesdays and Thursdays (CMU-PGH INI-DEC)
  • Lecture: 3:00pm -4:20pm PT Tuesdays and Thursdays (CMU-SV B23-118)

Course Description

This course explores both foundational and contemporary topics in distributed systems, such as communication, coordinating time, synchronization, consensus, impossibility of agreement, replica management, file systems, distributed SQL and noSQL databases, CAP, ACID, BASE, distributed hashing, anonymous communication, models of computation, and higher-level tools. The course project work focuses on the implementation of scalable, fault-tolerant distributed systems.

Prerequisites

An upper-level undergraduate project course in software systems, e.g. networking, OS, etc.

Recommended (Not Required) Textbook

Tanenbaum and Van Steen, Distributed Systems: Principles and Paradigms, Creative Space Publishing, 2006.

Web Site

http://www.andrew.cmu.edu/course/14-736/

Instructors

Name: Gregory Kesden
Email: gkesden@andrew.cmu.edu
Url: http://www.andrew.cmu.edu/~gkesden
Office: INI 124
Office phone: 412-268-5943
Office hours: Please see schedule on Web for updated information: http://www.andrew.cmu.edu/~gkesden/schedule.html

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 - you can find my schedule on the Web.

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

Please note that my office phone rolls to my cellphone 24x7. Please feel free to call it anytime. I turn it off on those rare occasions when I prefer not to be disturbed.

I am "gkesden" on many of the popular IM systems (AIM, MSN, GTalk, Skype, Yahoo). Please feel free to ping me.

Course Attendance

Attendance is expected at all classes. It is a discussion-oriented class.

Need Help?

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

The staff mailing list, staff-736@lists.andrew.cmu.edu, is a great way to reach the entire course staff for the fastest response.

Assignments and Grading

  • Exams: 45% (midterm and final count equally, 22.5% each)
  • Homework: 10% (All homeworks count equally, 2.5% each)
  • Project: 45% (All projects count equally)

Important note: Because of the importance of understanding both the theoretical and hands-on elements of systems, students must pass all three components of the course (homeworks, exams, and the projects) in order to receive a passing grade for the course. This does not affect the actual letter grade assignment unless one of the components is not completed to a passing standard.

Homework

Homework questions will be released alongside lecture materials, such as slides and notes. You should do them as part of your continuous review of lecture materials and other studying. The questions will be collected and graded four times during the semester. Think of the model as "4 distributed homeworks" (appropriate for a distributed systems class, eh?). The goal is to help you to consistently engage with the material, your peers, and the course staff, rather than giving you the work all at once periodically, which is less valuable for learning and more challenging for time management.

Exams

The exams are designed to be completed in about an hour during a 1.5 hour exam period. The final exam may be slightly longer than the midterm, just because there is less time pressure. Each exam focuses on the new material. The final exam is not especially designed to be cumulative. But, sometimes material does naturally build upon itself, which can lead to some cumulativeness in the exam.

Sample exams will be released. But, they will be released very shortly before the exam to provide a mechanism to put you at ease with the question format and tune-up your studying. They are not intended as study guides or resources.

Projects

Projects are design-build exercises. There are multiple ways to succeed. Some are better than others. This is by design. It enables you to think and explore, rather than just implement. It is important to "grow" your solutions and let them evolve, rather than trying to code quickly to a spec or test case.

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 electronic feedback, until you receive your final course grade and are satisfied 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 one (1) week. In the special case of the final exam, they should be addressed before the end of the next regular academic semester (fall, winter, spring). 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.

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 of course staff, considered Academic Dishonesty under the applicable campus and university policies.

Late Work

You have five (5) "Late Days" for use on assignments this semester. You can use one day on each of four assignments, four days on one assignment, &c. There are no fractional late 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 much 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 incapacitating 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 campus officials, typically academic advisors and/or college deans.

The use of late days on the last project may be limited to ensure the ability of students to prepare for final exams. Stay tuned.

Electronically Mediated Communication

You are not permitted to engage in any electronically mediated communication during class. 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, it isn't allowed. If you are not comfortable with this -- find a different section or course.

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.

This semester, at least one section of the class will be audio and video recorded as part of being telecast between CMU-SV and CMU-PGH. These recordings may, or may not, be made available to students. The instructor will make the decision about if, how and when to release the recordings to enrolled students in a way that balances the benefits from incentivizing attendance with the benefits from the additional resource for learning. In the past such recordings have not been released, or have been released only a very few days before each exam. The past is not necessarily an indicator of the future.

The Most Important things: Well-Being and Happiness

Please take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep, and taking some time to relax. Making those investments will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. If you have a problem, or think you might have a problem, and you don't know what to do, please ask for advice or support.

If you, or anybody you know, need advice or support, please reach out to people you trust, e.g. friends, family members, faculty members, program administrators, academic or student life staff members, RAs or housefellows, professional counselors, clergy, etc.

CMU's Counseling and Psychological Services (CaPS) is available by phone (412-268-2922) 24 hours a day, seven days a week, year-round. If you're not sure whether a particular problem is a "CaPS Problem", it is certainly worth the call to them to find out. If it isn't, they'll help you to find the right resources or to let you know that it'll work out. CaPS is committed to confidentiality.

If you would prefer to speak with somebody not assocated with CMU, you can call the re:solve Crisis Network at 888-796-8226.

If you face a serious emergency, please call the police. Unlike the police in some communities and many countries, the CMU and Pittsburgh Police are highly trained, experienced first-responders able to support members of the community and take the initial steps in responding to any type of crisis or emergent event.

The CMU police can be reached at 412-268-2323. If you are off-campus, you can dial 9-1-1.

If you, or somebody you know, needs advice or support, you can get started with a phone call or by saying, "Greg [or whomever], I'd like some advice".