Class Information

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

Professor

    Lorenzo Alvisi
    Office: Gates Hall 402
    Email: lorenzo@cs.cornell.edu
    Office Hours: Tu/Th: 5:30-6:30 pm

Teaching Assistants

    Ali Farahbakhsh
    Email: af472@cornell.edu
    Office Hours:
    M: 2:00-3:00 pm - F: 3:00-4:00 pm
    Gates 405
    Austin Li
    Email: atl63@cornell.edu
    Office Hours:
    W: 4:00-5:00 pm - Th: 10:30-11:30
    Gates 405
    Muhammad Ahmed
    Email: ma2386@cornell.edu
    Office Hours:
    M/W: 12:00-1:00 pm
    Gates 405


Welcome!

I'm very happy you've chosen to take CS 5414. I love this class and 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're about to embark on is far more rewarding when we get to know each other. So let me invite you to stop by my office hours--even if you don't have a pressing question about homework or class material.

Inclusion

You belong here. 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. If you witness anything that undermines this, please let me know so we can address it.

Course Prerequisites

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

Beyond that, what are the real prerequisites? First, a willingness to participate in class-—I like to keep things interactive, and for that, I need you. Second, be ready to tap into your inner Ninja, both theoretically and practically. You should be (or be willing to become) comfortable developing proofs, as several homework problems will require you to design protocols and prove them correct. The course projects will introduce you to a principled and empowering way to build 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) distributed systems can't be hacked 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.

GenAI policy

Alas, teaching and learning were simpler before LLMs...

What has made this class special for so many of the students who have taken it in the past is the productive struggle that they put in it -- and all the meta-cognition (your ability to think about how you think) they derived from it.
But what is one to do when the project could be completed at the press of a button, or so?

I am going to level with you: I see no value, for you or for me, in Claude doing the project. So, I am offering you two distinct paths to complete CS5414:

You will be asked to choose the path you would like to take by the end of the second week of classes.

In both paths, there will be also oral technical checks of your understanding of the homework sets

Lectures

.

Labs

The project component follows the DSLab sequence developed at the University of Washington (see the schedule for an introductory paper). It's a challenging, time-consuming lab sequence. Please read “A few words about the Labs” for more details.

Exams

The class will have three exams: a Midterm; a Final; and an in-class test centered on the project.
The Midterm date is not yet fixed in stone -- but most likely it will take place on October 14, at 7:30 pm in Gates G01, I will announce the date of the Final as soon as it becomes available.

Readings

There is no required textbook (you’re welcome!). Instead, readings will center on research papers that expand on class discussions. 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 to-know-more 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 questions I'll be asking "live", rather than reading the answers in my notes! Multiple studies show that note taking works best when using paper or a device with a stylus--because, since you cannot write everything I am saying, you are thinking more about what you write, and thus retain the material more. Please consider not keeping your laptops open during lecture.

Attendance

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.

ED

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. You can also give a try to Gen AI -- using it for this purpose, as you would use a TA, is just fine.

Grading

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 in the project path will be determined as follows:

Exams (3)

58%
(Project test: 8%; Midt: 20%
Final: 30%)

Homework (3)

9%

Projects

32%

Course eval

1%

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

Grades in the no-project path will be determined as follows:

Exams (3)

78%
(Project test: 8%; Midt: 30%
Final: 48%)

Homework (3)

9%

Presentations

12%

Course eval

1%

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

Re-grading

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 by December 8 (the last day of classes)

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.

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.

Academic Integrity

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

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. 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 and in a note, recording the AI violation, being added to your academic record.

Project: You should work on Lab 0 and Lab 1 individually. For later Labs, you 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

Accommodations

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

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.

CAPS

If you experience emotional stress,
contact
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 August 25, 2025