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

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 - 3044 Mohammad Hammoud
Recitations Thursday, 08:45 am - 09:35 am CMB - 3044 Ammar Karkour

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 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 ( 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


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

Ammar Karkour


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

Tools for the course:


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


    Distributed Systems: Principles and Paradigms


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


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


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


    Tom White
    Second Edition, O'Reilly Media, 2010


    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:

    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.