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 2023)

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 Sunday and Tuesday, 08:30 am - 09:45 am CMB - 3046 Mohammad Hammoud
Recitations Thursday, 08:45 am - 09:35 am CMB - 3046 Hend Gedawy

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: Tuesday, 10:00 - 11:30 AM

Hend Gedawy

E-mail: hkg@andrew.cmu.edu

Office Hours: Sunday & Thursday 10:00 AM - 12:00 PM, Tuesday 12:00-1:00 PM, Monday & Wednesday 9:00-10:00 AM

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 3-Sep Design report: 17-Sep, Due: 1-Oct Handout Code
Project 2 5-Oct 24-Oct Handout Code
Project 3 26-Oct 16-Nov Handout Code
Project 4 16-Nov 29-Nov Handout No Code
Problem Set Date Out Date Due Handout Code
PS 1 24-Aug 03-Sep Handout Code
PS 2 07-Sep 26-Sep Handout --
PS 3 26-Sep 19-Oct Handout
PS 4 31-Oct 12-Nov Handout --
PS 5 19-Nov 27-Nov Handout --
Quiz Date
Quiz I 24-Sep
Quiz II 5-Nov
Quiz III 26-Nov
Exam Date
Midterm 15-Oct
Final Review TBA
Final TBA
Week Session Date Topic Coursework
1 1 20-Aug Introduction  
  2 22-Aug Networking - Part I  
  3 24-Aug Intro to Java PS1 released, Code
2 4 27-Aug Networking - Part II  
  5 29-Aug Networking&RPC  
  6 31-Aug Networking & Threading in Java, Code  
3 7 3-Sep Remote Procedure Calls - Part I PS1 Due
  8 5-Sep RPC Part II P1 Released (Handout, Code)
  9 7-Sep Project 1 - RMI, Code PS2 Released
4 -- 10-Sep No Class  
  10 12-Sep Architectures
  11 14-Sep More on Project 1  
5 12 17-Sep Naming P1 Design Report Due
  13 19-Sep Naming - Part II  
  14 21-Sep Review: network performance & failure semantics  
6 -- 24-Sep QUIZ I Mock Quiz 1, Solution
  15 26-Sep More on Naming (No slides) PS2 Due, PS3 Released
  16 28-Sep Concurrency in Java  
7 17 01-Oct Synchronization - Part I P1 Due
  18 03-Oct Synchronization - Part II  
  19 05-Oct Project 2 P2 Released (Handout, Code)
8 -- 08-Oct FALL BREAK  
  -- 10-Oct FALL BREAK  
  -- 12-Oct FALL BREAK  
9 -- 15-Oct MIDTERM  
  20 17-Oct Synchronization - Part III  
  21 19-Oct Synchronization in Java PS3 Due
10 22 22-Oct Synchronization - Part IV (No Slides)
  23 24-Oct MPI- Part I P2 Due
  24 26-Oct MPI, Rank, Parallel Sum, Collective Parallel Sum P3 Released (Handout, Code)
11 25 29-Oct MPI- Part II  
  26 31-Oct MapReduce & The Transformer Model PS4 Released
  27 02-Nov Project 3  
12 28 05-Nov QUIZ II
  29 07-Nov ChatGPT & BERT
  -- 09-Nov Community Day  
13 30 12-Nov More On Programming Models & Apps (No Slides) PS4 Due
  31 14-Nov Ray
  32 16-Nov Project 4 P4 Released; P3 Due
14 33 19-Nov Caching- Part I PS5 Released
  34 21-Nov Caching - Part II
  35 23-Nov Replication - Part I  
15 36 26-Nov Replication - Part II PS5 Due
  37 28-Nov Fault-Tolerance
  38 30-Nov Final Review P4 Due
  -- -- 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 12%
Quizzes 3 12%
Class Participation and Attendance 42 6%



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 05 Sep - 01 Oct 15%
Project 2 05 Oct - 24 Oct 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 26 Oct - 16 Nov 10%
Project 4 16 Nov - 29 Nov 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 (12%)

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

    Quizzes (12%)

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

    Participation & Attendance (6%)

    Class-Recitation Participation and Attendance:

    Your attendance of both, classes and recitations, as well as your participation in discussions during presentations will count for 6% 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.