Professor
Teaching Assistants
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.
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.
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.
- Regular classes: Mon, Wed: 7:30-8:45pm, in Gates G01
- Make-up classes: Fri: 3:00-4:00pm in Gates G01 (please
refer to the schedule)
- Intro classes to DSLab projects, given by Matt Burke: Fri:
3:00-4:00 pm on Zoom
(
Zoom link).
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).
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.
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.
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
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:
Slip days used (this project):
_______ Slip days used (total): ______
Please note that:
-
Assignments that do not carry this information will not be
graded.
- Misrepresenting slip days information will be
considered as a violation of academic integrity
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.
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.
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:
This page is maintained by Lorenzo Alvisi. Last updated January 29,
2023