Class Information

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

Professor

    Lorenzo Alvisi
    Office: Gates Hall 413a
    Email: lorenzo@cs.cornell.edu
    Office Hours: Tu: 5:00-7:00 pm

Teaching Assistants

    Matt Burke
    Email: mlb452@cornell.edu
    Office Hours: M: 1:00pm - 3:00pm
    OH Link on Zoom
    Youer Pu
    Email: yp348@cornell.edu
    Office Hours: Th: 9am-11am
    Rhodes 408


Welcome!

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

Inclusion

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.

Lectures

Projects

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

Exams

The class will have a Midterm and Final.
The Midterm will take place on March 20, 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 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!

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

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 will be determined as follows:

Exams (2)

50%
(Midt: 20%
Final: 30%)

Homework (3)

15%

Projects

34%

Course eval

1%

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.

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

You start the semester with a little treasure of 3 slip days for homework, and 3 slip days for projects. Use your treasure wisely, since no further extensions will be provided (except for illness documented by a doctor or, God forbid, death in the immediate family).

Late assignments lose 10% of the grade for each days past the deadline (once slip days have been accounted for)

Slip days that have not been redeemed before the beginning of the final exam period are lost.

If two project partners have different numbers of slip days remaining on their accounts, the slip days account for the team is the min of the partners' slip day balances.
To help your TAs track your slip-day status, the top of your project README file (or your homework) should include the line:

Please note that: Slip days will be tracked at the granularity of a day; if an assignment is 1 minute late, it is one day late: this is not to be draconian, but to show some respect for the staff grading your assignments.

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

Your submission should be solely the result of your work and, in case, of the work of your group members.

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

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 can work on the project 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.

Accommodations

If you require accommodations, please provide an accommodation notification letter from Student Disability Services to Coralia Torres (ct635@cornell.edu). We are happy to meet your needs in this matter.

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:

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 January 29, 2023