6.5840 - Spring 2024

General Information

Structure // Grading policy // Staff // Office Hours // Acknowledgements //


6.5840 is a core graduate subject with lectures, labs, an optional project, a mid-term exam, and a final exam. 12 units, 6 EDPs.

Class meets TR1-2:30 in person in E25-111. Most class meetings will be part lecture and part paper discussion. You should read the paper before coming to class, and be prepared to discuss it. The schedule indicates the paper to read for each meeting.

We will post a question about each paper 24 hours before the beginning of class on the schedule (see the Question link for each paper). Your answer need only be long enough to demonstrate that you understand the paper; a paragraph or two will usually be enough. We won't give feedback, but we will glance at your answers to make sure they make sense, and they will contribute to your grade. For each lecture you must also submit your own question about the paper.

6.5840 will have a midterm exam during the ordinary lecture time, and a final exam during finals week. You must attend both exams. There will be no make-up or alternate conflict time for the midterm exam.

There are programming labs due every week or two throughout the term. These labs are to be done individually.

Towards the end of the term you can choose between doing a final project based on your own ideas, or doing Lab 5. If you want to do a project, you must form a team of two or three people, the project must be closely related to 6.5840 topics, and we must approve it in advance. You'll hand in a short project proposal, and, if we approve, you'll design and build a system; at the end of the term you'll hand in a summary of your results (which we'll post) and your code, and do a short presentation and demo in class.

To do well in 6.5840, you should already be familiar with computer systems to the level of 6.033 (or 6.1810) and 6.004, and you should be good at debugging, implementing, and designing software, perhaps as a result of taking programming-intensive courses such as 6.1810 and 6.035.


Final course grades will be based on:

To help you cope with unexpected emergencies, you can hand in your Lab 1, 2, 3, 4, and 5A solutions late, but the total amount of lateness summed over all the lab deadlines must not exceed 72 hours. You can divide up your 72 hours among the labs however you like; you don't have to ask or tell us. You can only use late hours for Labs 1, 2, 3, 4, and 5A; you cannot use late hours for Lab 5B or for any aspect of the project.

If you hand a lab in late, and your total late time (including the late time for that assignment) exceeds 72 hours, and you hand it in by the last day of classes, then we'll give it half the credit we would have given if you had handed it in on time. Please send us e-mail if you want us to grade an assignment that's more than 72 hours late. We will not accept any work after the last day of classes, regardless of late hours. If you don't hand in an assignment by the last day of classes, we'll give the assignment zero credit.

If you want an exception to these rules, please ask S3 to send us an excuse note.

COVID procedures

If you cannot attend lectures in person, please watch the recorded lectures to keep up with the material. Office hours via Zoom will be available for those who prefer them or who cannot attend in person.

We plan to have in-person exams. Please e-mail us as soon as possible if you won't be able to attend because you have COVID or are isolating in accordance with MIT rules, and we will make alternate arrangements for you.

Collaboration policy

You must write all the code you hand in for the programming assignments, except for code that we give you as part of the assignment. You are not allowed to look at anyone else's solution. You may discuss the assignments with other students, but you may not look at or use each other's code.

Please do not publish your code or make it available to current or future 6.5840 students. github.com repositories are public by default, so please don't put your code there unless you make the repository private. You may find it convenient to use MIT's GitHub, but be sure to create a private repository.

You may discuss the paper questions with other students, but you may not look at other students' answers. You must write your answers yourself.


Please use 6824-staff@lists.csail.mit.edu to send questions or comments about the course to the staff.

Frans Kaashoek 32-G992
Robert Morris 32-G972
Teaching assistants
Kenneth Choi
Yun-Sheng Chang
Lily Tsai
Ananya Jain
Upamanyu Sharma

Office hours

We have a combination of in-person and Zoom office hours. If you would like to meet remotely, please put your Zoom link on the spreadsheet posted on Piazza.

Day Time Location TA
Monday 10:30am–12:30pm 24-310 Upamanyu
Monday 5:00pm–7:00pm 24-310 Yun-Sheng
Tuesday 9:00am–11:00am 24-317 Lily
Tuesday 3:00pm–5:00pm 24-317 Ananya
Wednesday 5:00pm–7:00pm 24-310 Yun-Sheng
Thursday 11:00am–1:00pm 24-310 Lily
Thursday 5:00pm–7:00pm 24-310 Kenneth
Friday 12:00pm–2:00pm 24-321 Upamanyu

Appointments with staff outside of the listed office hours can be setup via email or private Piazza post.


Robert Morris, Frans Kaashoek, and Nickolai Zeldovich developed much of the 6.5840 course material. The course was called 6.824 before 2023.

Questions or comments regarding 6.5840? Send e-mail to 6824-staff@lists.csail.mit.edu.

Top // 6.5840 home //