Getting Help

For urgent communication with the instructor and the teaching assistant, it is best to send an email (preferred) or give a phone call. If you want to talk to any of them in person, remember that their posted office hours are merely nominal times when they guarantee that they will be in their offices. You are always welcome to visit them outside of their office hours if you need help or want to talk about the course.


We ask that you follow a few simple guidelines. The instructor normally works with his office door being open. Whenever the office door is open, he welcomes visits from students. However, if his office door is closed, this means that he is busy with meetings or phone calls, thus prefers not to be disturbed.


We will use the course webpage as the central repository for all information about the class. Through the webpage, you can:


  1. Obtain copies of any handouts or assignments. This is especially useful if you miss a class or lose a document.
  2. View announcements that relate to the course.
  3. Find links to any electronic data you need for your assignments.
  4. Read clarifications and changes made to any assignments, schedules, or policies.

15-440 Distributed Systems (Fall 2020)

About the Course

15-440 is an introductory course in distributed systems. The emphasis will be on the techniques for creating functional, usable, and high-performing distributed systems. To make the issues more concrete, the class includes several multi-week projects requiring significant design and implementation.

The goals of this course are twofold: First, students will gain an understanding of the principles and paradigms that underlay distributed systems, such as communication across networks, concurrency, synchronization, consistency and fault-tolerance. Second, students will gain practical experience in designing, implementing, and debugging real distributed systems.

The major themes this course will teach include process distribution, communication, naming, abstraction and modularity, concurrency, scheduling, resource sharing, locking, consistency and replication, failure handling, distributed programming models, distributed file systems, virtualization, and the use of instrumentation, monitoring and debugging tools to solve problems at large-scale. As the creation and management of software systems are fundamental goals of any undergraduate systems course, students will design, implement, and debug large programming projects. Students will learn some of today’s most popular distributed systems, such as Google File System, MapReduce and PowerGraph.

Lectures & Recitations

Time Place Faculty/Staff
Lectures Monday and Wendesday, 08:30 am - 09:45 am Zoom Mohammed Hammoud
Recitations Thursday, 08:45 am - 09:35 am Zoom Laila Elbeheiry

Guidelines on Video Usage (For the Remore Instruction Phase)

  1. Videos Shall Be on During Live Sessions, Except for Pedagogical or Technical Reasons: In this semester, we will use Zoom during regular class sessions to deliver lectures and/or conduct recitations. You are required to turn your camera on during every online class session unless there is a pedagogical or technical reason to have it turned off. If you have justifiable technical or personal circumstances that prevent you from having your video on during live class sessions, you will need to submit a “Waiver Form” to the Video Policy Committee at https://it.qatar.cmu.edu/forms/student-video-waiver-form/. In this waiver, you will have to explain thoroughly the reasons for which you are requesting a video exemption. The waiver, once approved by the Committee, will grant you an exemption from having your camera on during the regular class time. Please note that this waiver does not apply for examinations (in-term or final exams, or presentations that require the use of video)—more on this below. After the waiver deadline submission time, if you are not granted an exemption and if you keep your video off during classes, you will lose points for in-class attendance and participation. Please keep in mind that upon approval of the Waiver Form, the professor might need to call on you periodically with questions or comments using the microphone or the chat option to ensure your presence and involvement in class. Having your video on and participating during live Zoom sessions will support your learning in various ways. It may reduce the feeling of isolation and keep you connected with your colleagues and the professor. It is also important to note that everyone’s “remote classroom” and “learning” experience is greatly improved if every student is “visible”. The professor will work tirelessly to engage with you and provide a rich, interactive, and high-quality remote teaching experience. Likewise, he expects a similar commitment on your side. You are also encouraged to follow the same classroom etiquette as you would during normal in-person class sessions when connecting to virtual classes – such as: dressing up appropriately, participating when required (whether by using your audio or the chat feature on Zoom), staying engaged, and avoiding any parallel work irrelevant to the session that may be distracting and affecting others learning experience to (including emails, browsing the internet, usage of the Zoom private chat with friends). Paying attention during online sessions and contributing to discussions and questions may influence your in-class participation grades. In order to feel more comfortable in the Zoom environment and to address privacy concerns, adding a virtual background may be an alternative option to shield away from your surroundings. Establishing a neutral “workspace” in your environment that is away from distractions also helps with your learning process.


  2. Video During Quizzes and Exams: You are required to turn your camera on during all online assessments, including quizzes, exams and the final. Your work surface, including your hands, must be visible by video at all times during examinations. No alternative arrangements will be provided to you for this request. It is important to note that if you have a physical disability that presents a barrier to abiding by these guidelines, adjustments to this policy may be made, but must first be discussed with and approved by Catherine Getchell (getchell@cmu.edu) from the Office of Disability Resources, in consultation with the professor.


  3. Unauthorized Recordings: It is extremely important to note that students are not permitted to make any personal audio or video recordings or take photos/ screenshots of classes or presentations. Any recording of live Zoom sessions, audio, and photos/ screenshots by students, and/or posting or sharing by any means (including emails, social media platforms, phones, etc.) will be a violation of university policy and could result in serious consequences, including suspension or expulsion upon review through the community standards process.


  4. Sharing of Screens: You may be invited to share your Screen during class. Please note that when you share your screen through zoom, your video does not turn on, and your face does not appear: what will be shared is the appropriate file or your entire desktop at any point in time. Please be mindful that any items on your desktop or computer screen (e.g. files, icons, open applications) that you do not want others to see should be removed or closed prior to sharing your screen.


  5. Remote Attendance: The professor may use the time you log/Zoom into a class with your Andrew ID as proof of attendance. Joining after a live session’s scheduled start time will be considered as an absence. The professor may request additional proof of participation: polls, participation in chat, and requests that the students unmute their microphones and use the audio at any point in time of the Zoom lecture. The professor will consider your failure to respond as sufficient to mark you absent or late.


Course Team

We are always available for help and support on Piazza, Zoom, or Email during our office hours. To receive help outside of our office hours, it is prefered to schedule a meeting or post your questions on Piazza.

Mohammad Hammoud

E-mail: mhhammou@qatar.cmu.edu

Office hours: Monday, 10:00 - 11:30 AM

Laila Elbeheiry

E-mail: loe@andrew.cmu.edu

Office Hours: Sunday & Tuesday, 10:00 - 12:00 PM

Tools for the course:

Schedule

Please refer to this section for the tentative schedule for the class. The schedule indicates the project and the assignment activities as well. Any changes will be always announced and reflected on this webpage.

Filter schedule by:
Project Date Out Date Due Handout Code
Project 1 25-Jan Design report: 6-Feb, Due: 21-Feb Handout Code
Project 2 24-Feb 16-Mar Handout Code
Project 3 17-Mar 07-Apr Handout Code
Project 4 11-Apr 21-Apr Handout Code
Problem Set Date Out Date Due Handout Code
PS 1 13-Jan 23-Jan Handout Code
PS 2 27-Jan 10-Feb Handout --
PS 3 14-Feb 24-Feb Handout --
PS 4 23-Mar 04-Apr Handout --
PS 5 13-Apr 19-Apr -- --
Quiz Date
Quiz I 14-Feb
Quiz II 06-Apr
Exam Date
Midterm 09-Mar
Final Review TBA
Final TBA
Week Session Date Topic Coursework
1 1 10-Jan Introduction  
  2 12-Jan Networking - Part I  
  3 13-Jan Into to Java PS1 released: Handout, Code
2 4 17-Jan Networking - Part II  
  5 19-Jan More on Networking  
  6 20-Jan Networking & Threading in Java (Code)  
3 -- 23-Jan -- PS1 Due
  7 24-Jan Remote Procedure Calls - Part I  
  -- 25-Jan -- P1 Released (Handout, Code)
  8 26-Jan RPC Part II  
  9 27-Jan Project 1 - RMI: Code, Slides PS2 Released: Handout
4 10 31-Jan No Class  
  11 2-Feb Architectures
  12 3-Feb More on Project 1  
5 -- 6-Feb -- P1 Design Report Due
  13 7-Feb Naming
  14 9-Feb Naming - Part II  
  15 10-Feb Review: network performance & failure semantics PS2 Due
6 -- 14-Feb QUIZ I PS3 Released: Handout
  16 16-Feb More on Naming  
  17 17-Feb Project 2  
7 18 21-Feb Synchronization - Part I P1 Due
  19 23-Feb Synchronization - Part II  
  20 24-Feb Bank Use Case P2 Released: Handout, Code; PS3 Due
8   28-Feb FALL BREAK  
  -- 02-Mar FALL BREAK  
  -- 03-Mar FALL BREAK  
9 21 07-Mar Synchronization - Part III  
  22 09-Mar MIDTERM  
  23 10-Mar Deadlocks & Dining Philosophers, Code
10 24 14-Mar More on Synchronization (Discussion)
  25 16-Mar MPI P2 Due
  26 17-Mar MPI, Rank, Parallel Sum P3 Released: Handout, Code
11 27 21-Mar Hadoop  
  28 23-Mar Hadoop- Part II (Discussion) PS4 Released: Handout
  29 24-Mar MPI (CR), Code  
12 30 28-Mar Pregel
  31 30-Mar Community Day  
  32 31-Mar Community Day  
13 33 04-Apr GraphLab PS4 Due
  34 06-Apr QUIZ II & P3 Kmeans
  35 07-Apr MapReduce, Handout, Code P3 Due
14 36 11-Apr Caching- Part I P4 Released: Handout
  37 13-Apr Caching- Part II PS5 Released: Handout
  38 14-Apr Replication - Part I  
15 39 18-Apr Replication - Part II
  19-Apr -- PS5 Due
  40 20-Apr Fault-Tolerance
  41 21-Apr TBA P4 Due
  42 TBA FINAL EXAM  

Course Assessment

The participation of students in the course will involve five forms of activities:

  1. Attending lectures and recitations
  2. Solving assignments (including writing and reading assignments)
  3. Solving large programming projects
  4. Taking exams and quizzes
  5. Participating in class discussions

Final Grade Assignment and Assessment methods

To this end, the below table shows the breakdown of the five forms of activities that the course involves, alongside the quantity and the overall weight of each activity. Take into account that small differences in scores can make the difference between two letter grades. Letter grades will be determined by absolute standards. The total score will be plotted as a histogram. Cutoff points are determined by examining the quality of students' work on the borderlines. Individual cases, especially those near the cutoff points may be adjusted upward or downward based on factors such as attendance, class participation, improvement observed throughout the course, exam performance, and special circumstances




Type # Weight
Projects 4 40%
Exams 2 30%
Problem Sets 5 15%
Quizzes 2 10%
Class Participation and Attendance 42 5%



Because of the importance of understanding both the theoretical and hands-on elements of the class, students must pass both components of the course (projects as one component, and exams, quizzes and problem sets as the second) 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.

Projects (40%)

The projects will count for a total of 40% of your final score. There will be 4 projects throughout the course. All projects are individual projects (i.e., no team can work on the same project).

Project's percentages are as follows:

Project Date Percentage Notes
Project 1 25 Jan - 21 Feb 15%
Project 2 24 Feb - 16 Mar 7.5%

Project 2 heavily relies on completing Project 1, and therefore, it’s strongly advised to finish P1 early to avoid complications with P2 (If you have not completed P1, you will not be given any solution files to work on P2!

Project 3 17 Mar - 7 Apr 10%
Project 4 11 Apr - 21 Apr 7.5%



You are encouraged to submit the projects on time. For all projects except the final one, the following rules apply:

Grace days

There is a grace-days quota for projects. In particular, you will be given 3 grace days for all projects, except for the final one. You can use the grace days as needed. For instance, you can submit your first project three days late and still receive no penalty. In this case, you will be penalized starting from the 4th day after the deadline. Furthermore, when you consume all your grace days, you will be left with no grace days for the rest of the projects.


Final project

Note that the final project is unique in two aspects. First, you cannot cannot use grace days for it. As such, if you are left with some grace days before the final project, you will lose them all. Hence, plan how to utilize your grace-days quota judiciously.

Second, there will not be any penalty system for this project either. More precisely, if you are one day late in submitting the project, it will not be graded and you will receive a zero score on it.

Exams (30%)

There will be two in-class exams – midterm and final – which together will count for 30% of your final score.

  • The midterm is worth 10%
  • The final is worth 20%
  • Both exams are open-book. That is, you are allowed to bring your textbooks, slides, and other supporting documents of your own. Any electronic equipment is not allowed, however.

    Problem Sets (15%)

    There will be 5 assignments that will test you on problem analysis and solving skills. These assignments will altogether carry 15% of your final score. At the end of the semester, the Problem Set with the lowest score will be dropped

    Quizzes (10%)

    There will be 2 quizzes, which together will count for 10% of your final score. These quizzes are meant to test your understanding and preparation for the concepts covered throughout the course.

    Participation & Attendance (5%)

    Class-Recitation Participation and Attendance:

    Your attendance of both, classes and recitations, as well as your participation in discussions during presentations will count for 5% of your final score.

    Textbooks & Resources

    In this course, we will refer to the below resources and textbooks. There are two primary textbooks and two additional:

    Miscellaneous

    Distributed Systems: Principles and Paradigms

    (Primary)

    Andrew S. Tannenbaum and Maarten Van Steen
    Second Edition, Pearson, 2007
    Distributed Systems: Concepts and Design

    (Primary)

    George Coulouris, Jean Dollimore, Tim Kindberg, and Gordon Blair
    Fifth Edition, Addison Wesley, 2011
    Computer Systems: A Programmer's Perspective

    (Additional)

    Randal E. Bryant and David R. O'Hallaron
    Prentice Hall, 2003
    Hadoop: The Definitive Guide

    (Additional)

    Tom White
    Second Edition, O'Reilly Media, 2010

    Policies

    Working Alone on Assignments/Projects

    Assignments/projects that are assigned to students should be performed individually. This course does not include any team projects or assignments.

    Handing in Assignments/Projects

    All assignments/projects are due at 11:59PM (one minute before midnight) on the specified due date. All submissions are electronic and should be submitted using Gradescope's course page.

    Refer to the following link for how to submit your solutions to Gradescope: https://www.gradescope.com/get_started#student-submission

    Making up Exams, Assignments and Projects

    Missed exams, assignments and projects can be made up on a case by case basis, but only if you make prior arrangements with the instructor. However, you should have a good reason for doing so. You need a written consent from the instructor for making up exams, assignments or projects. It is your responsibility to get your projects and assignments done on time. Be sure to work far enough in advance to avoid unexpected problems, such as illness, unreliable or overloaded computer systems, etc.

    Appealing Grades

    After each exam, assignment, and/or project is graded, you have 7 calendar days to appeal your grade. All your appeals should be provided in writing. If after appealing you are still not satisfied, please visit the instructor. If you have questions about an exam, an assignment or a project grade, please visit the instructor directly.