Class Information

Welcome | Course Prerequisites | Course Objectives and Scope | Lectures | Labs | Exams | Textbook | Grading | Integrity | Accommodations |


    Lorenzo Alvisi
    Office: Gates Hall 413a
    Office Hours: Tu: 5:00-7:00 pm

Teaching Assistants

    Youer Pu
    Office Hours:
    Th: 2:00 pm - 4:00 pm
    Rhodes 400
    CJ Lee
    Office Hours:
    W: 3:00 pm - 4:00 pm; F: 12:00 pm - 1:00 pm
    Rhodes 408
    Robin Li
    Office Hours:
    M: 3:00 pm - 4:00 pm; T: 4:00 pm - 5:00 pm
    Rhodes 576
    Tianjing Zhang
    Office Hours:
    Th/F: 10:15 am - 11:15 am
    Rhodes 400
    Sun, 11:am - 12:00 pm, Zoom link
    Wenxin Zhang
    Office Hours:
    M/W: 5:00 pm - 6:00 pm
    Rhodes 406


I am very happy that you have chosen to take CS5414. I love this class, and I love the material we cover. I fell in love with distributed computing over 30 years ago (yikes!), and I still find the field incredibly intellectually satisfying.
I strongly believe that the intellectual adventure we are about to embark on is infinitely more rewarding if we go through it getting to know each other; so let me take this opportunity to invite you to stop by my office hours, even if you don't have a pressing question about homework or the material discussed in class.


You belong here, and both I and the TAs are here to help you learn and enjoy this course (challenges and all). We strive to make CS 5414 a welcoming, inclusive, respectful, and supportive environment, consistent with Cornell's Computer Science Department's Values of Inclusion. If you witness something that goes counter to a supportive and inclusive environment, please let me know so that the issue can be addressed.

Course Prerequisites

CS 4410, Graduate standing, or permission of the instructor.

Beyond the above, what are the real hard pre-requisites? The first is to be willing to participate in class. I like to make the class interactive---and for that, I need you. Second, you need to be willing to get in touch with your inner Ninja, both on the theoretical and systems side. You should either be (or be willing to become) comfortable about developing proofs, as several of the homework problems will require you to develop protocols and prove them correct. The course projects, in turn, will expose you to a disciplined and empowering way to get your feet wet building distributed systems.

Course Objectives and Scope

The objective of this course is to introduce you to the key ideas that have shaped distributed computing and are likely to do so in the future; the ambition of this course is to get you as excited about them as I am. The thing about distributed computing that really grabbed me when I first became exposed to it was how its tremendous practical impact was based on beautiful, elegant, theoretical foundations. Because of asynchrony, partial failures, network partitions and concurrency (all issues you'll be an expert on by the end of this course) it is virtually impossible to hack a distributed system into submission: getting it right means being able to prove things about it.
This course strives to mirror the multi-faceted nature of the subject it covers. Classes focuses on fundamentals: We will cover problems, models, algorithms, and impossibility results. But to keep ourselves honest, we will integrate the theoretical discussions with substantial projects that will allow us to apply some of the concepts discussed in class.
The schedule shows the topics that I aim to cover. It is perhaps a bit ambitious, but we'll try to cover as many of these as possible.


. Lab classes will be recorded.


The projects component of the course will follow the DSLab sequence developed at the University of Washington (see the schedule for a paper that serves as an introduction to DSLab). It is a challenging, time consuming, Lab sequence Please read "A few words about the Labs" for a more detailed discussion.


The class will have a Midterm and Final.
The Midterm will take place on March 13, at 7:30 pm in Hollister B14, I will announce the date of the Final as soon as it becomes available.


There is no required textbook for this class. (You are welcome). Instead, there will be reading assignments centered on research papers that cover in greater depth what we will be discussing in class. You'll see that the course web page lists papers both under Required Readings and To know more . I have tried very hard to limit the number of required readings. But if you are at all interested in Distributed Computing, I hope you will try some of the recommended-but-not-required papers: they are typically foundational papers in the field, and thus we will cover in class the material they present---but there is nothing like getting it from the horse's mouth.

Lecture Notes

I will make available pdfs of my class notes---I'll do this after class (typically at the end of the week), because I want you to think about the question I'll be asking "live", rather than reading the answers in my notes!


Class attendance (or lack thereof) does not directly reflect into credit: however, it is my experience that students who don't attend class tend not to do as well, because they become disengaged and then struggle to catch up.


We have created a Ed account: it is intended to be used solely for questions that can help clarify material discussed in class. Ed is great to answer quick, specific, narrow questions, but not so good for questions that require actual explanations. For those, let me once again encourage you to come to our office hours. In person discussion is not only more fun and higher bandwidth, but may actually be the only way to address satisfactorily your question


It is important for you to realize what grades in this class reflect and what they don't reflect. All we can grade you on is how well you demonstrate that you know the material this semester. We can't grade you on how hard you really worked, how much of a success you'll be after graduation, how smart and creative you are, or even how well you'll be able to apply the material in the future. And after all, it is what you do in the future, not what you do this semester, that's really important.

That said, grades will be determined as follows:

Exams (2)

(Midt: 20%
Final: 30%)

Homework (3)




Course eval


Projects will be of different complexity, which will be reflected in the percentage of credit that each will earn.

This class uses a letter grading system, which is the official grading system at Cornell University. Grading in CS5414 is not a competition with your peers, where only few can, by design, be at the top. Anyone who earns above 85% is guaranteed at least an A-, independent of how others in the class have done; similarly, everyone who earns above 70% and 60% is guaranteed, respectively, at least a B- and a C. However, an As may (and likely will) also be earned with a lower percentage of the overall score, depending on the distribution of scores in the class. Typically, about one third of the students earn at least an A-, and about 85% at least a B-, and the median is typically in the B+ range.


If you believe that we have made a mistake in grading your work, you may submit it for a re-grade under the following restrictions. (1) All re-grade requests must be submitted with a clear, written statement that explains the mistake in the original grading. (2) All requests for re-grades must be submitted within 1 calendar week of when the graded work is returned. (3) We will truly re-grade the entire exam, problem set, or project assignment, not just the issue you bring to our attention. So, to be clear: if in the process we find out other issues that had escaped us the first time, we will deduct points. Thus, you grade can go up or down on a re-grade.

Late policy

We designed the late policy to give you maximal flexibility without having to ask us for permission in most cases, while still allowing us to grade assignments and get them back to you in a timely fashion. If you have an extenuating circumstance that causes you not to be able to complete the work on time, especially if due to something outside of your control (such as your lab partner has an illness or drops the class), please contact the staff or email the instructor. Often, we are able to work something out that is agreeable to everyone involved.

Each kind of assignment has a separate late policy. Be sure you understand the differences. Contact course staff if you have any questions.

All assignments, regardless of late policy or extensions, must be turned in by the end of the day on Tuesday, May 7, unless the instructor has given specific and individual permission.

Each lab (except the last one obviously!) comes with a 48 hour grace period, during which work is accepted without penalty. We then deduct 1% off your score, just for that assignment, for each additional day that it is late. In other words, if you are making progress, even slowly, you should keep working on the lab, but if you are stuck you should go ahead and turn it in. Since turning assignments in late cuts into the available time you have for the next lab, only use this flexibility if necessary. To turn in your lab after the 48 hour grace period, contact the staff.

For design documents, there is no grace period. This is because these are graded manually and quick feedback is essential.

Problem sets also have a 48-hour grace period, during which work is accepted without penalty. No credit is granted after the grace period expires. Note that, unlike some other course policies you might be familiar with, in this class there is no cap on how much total grace time you can use over the quarter. You can use the grace period on every single problem set and lab (except the last one) and still get full credit. Again, note that there is no grace period for design documents.

Academic Integrity

Students are expected to know and abide by Cornell's policy on academic integrity, including:

Homework:Although every student should independently submit their hoework and write their solutions individually, you are allowed, if you so choose, to collaborate on homework in groups of up to two students. You are not allowed, however, to search for solutions on the Internet: looking on line for solutions to problem set questions (including those buried in research papers not assigned as readings) will be very much considered a violation of the Code of Academic Integrity.

If you collaborated on a homework, your submission should indicate which other student you have collaborated with (name end Cornell NetID) A failure to do so will be considered a violation of the Code of Academic Integrity>. Let me emphasize it once again: you are to write your own solution, on your own. Discussing problems within your group is fine--writing solutions together is not.

A word to the wise: this is a graduate class: any violation of the Cornell Code of academic integrity will most likely result in a F in the course.

Project: You should work on Lab 0 and Lab 1 individually. For later Labs, you mus work can work in groups of up to 2 students. All members of a group can submit a single project, which should indicate all the group's members.
As you may be called to discuss your solution in an oral meeting with the staff, each group member should be able to explain the entire content of their submitted solution.

Note: Making available in any form (including uploading to an ostensibly ``education technology websites") to anyone other than the course staff solutions to either the homework problems or the labs will be considered a grave violation of academic integrity


If you require accommodations, please provide an accommodation notification letter from Student Disability Services to Ms.Amy Elser (

Seeking Non-Technical Help

Life as a Cornell student can at times be quite stressful. Cornell offers a number of resources for non-technical support and counseling (press the "command" key while clicking to open a new tab on your browser)

Engineering Advising

Academic advising for
engineering students

Arts & Sciences Advising

Academic advising for
A&S students

Cornell Health

Cornell University Health Services.


If you experience emotional stress,
Counseling and Psychological services.

Student Disability Services

Ensures that all aspects of student life
are accessible, equitable, and inclusive
of those with disabilities.

This page is maintained by Lorenzo Alvisi. Last updated January 29, 2023