Welcome to CS 380D Distributed Systems. This is a course designed to expose graduate students to the basics of distributed systems. We will be reading and discussing seminal papers in distributed systems over the semester. We will also be doing two projects: an implementation project, and a research project.
Undergrads considering taking this course: this course will be very different from the traditional undergraduate course. The reading for each class will be heavy, and there won't be as much lecturing as in undergraduate classes. The research project will be vague (by definition). That being said, undergraduate students have previously taken and excelled in this class.
This course will introduce students to a range of exciting topics including:
- State machines
- Consensus
- Failure detectors
- Distributed Storage Systems
- Byzantine failures
- Lamport clocks
- Snapshots
- Consistency models
- Replication protocols
- MapReduce
and more!
Piazza Link: piazza.com/utexas/spring2020/cs380d
Canvas Link: https://utexas.instructure.com/courses/1276420
Class Timing and Location: TuTh 2 pm - 3:30pm in GDC 6.202
Classes will happen via Zoom
Instructor: Vijay Chidambaram
Email: [email protected]
Office hours: Mon 3:30 to 4:30 PM, 6.436 Zoom
TA: Sekwon Lee
Email: [email protected]
Office hours: Fri 4-5 PM, GDC 6.404 (corner conf room near Vijay's office)
- All lectures will be recorded online and will be available for later viewing.
- Students are not required to synchronously attend the lectures -- we realize issues such as lack of internet connection may prevent this.
- Class recordings are confidential to the class and only for educational purposes, that they should not be shared outside the class in any form, and that any violation of this will be subject to Student Misconduct proceedings.
- Please be muted during the Zoom meeting, and use the "Raise Hand" option if you would like to ask a question.
20% Midterm-1
20% Midterm-2
30% Project 1: Implementing a distributed system supporting a consistent global snapshot
30% Project 2: Research/implementation project
There are a number of opportunities to earn extra credit. One of the goals of this class is to get you started in research in distributed systems. As such, I offer extra credit for working on research and getting to a feasible submission.
- If you make a feasible submission to the HotCloud workshop by Mar 17, you get 1% extra credit. If you are attempting this, you need to get started on your research project early: come talk to me about this.
- By the end of the term, if you produce a 12 page paper that is a feasible submission to OSDI, NSDI, SIGMETRICS, or FAST, you receive 2% extra credit. Each of these conferences has a different focus. The bar for a feasible submission at these conferences is quite high, so make sure you talk to me about it and put in the work!
- Class surveys. You will receive 0.25% (of the total grade) extra credit for completing an unofficial survey (before the first mid-term), and 0.25% for completing an official survey near the end of class.
There will be two midterms. There will not be a final exam.
Midterm 1: Mar 12th (in-class)
Midterm 2: May 7th (cancelled)
You will be allowed one A4 sheet of paper on which you can bring notes for the exam. Laptops, tablets, and ereaders are banned from exams. You should not need them in an exam, and they are far too flexible as communication devices to make enforcement of non-communication policies enforceable. Any use of a communication device for any reason in the exam room will earn an automatic zero on the exam.
There will be two big projects in the course. Students will work in groups of 2--4 for both projects.
The first project will involve building a distributed banking system supporting a global snapshot. More details are included in project #1.
The second project is an open-ended research project. The team will need to extend an existing research project or come up with a new idea. The team is required to build the prototype, perform experiments, and write-up a conference style 12 page report.
UPDATE: The second project can also be an implementation project. Students are encouraged to build part of the distributed systems that have been discussed in class so far. Students can also contribute in a meaningful way to open-source repositories related to distributed systems.
Mar 11 Project 1 due
Mar 12 Midterm 1
May 7 Midterm 2
Apr 10 Project 2 proposal due
May 8--15 Out-of-class presentations about project 2. Scheduled by
appointment
May 15 Report due about project 2
Students with disabilities may request appropriate academic accommodations from the Division of Diversity and Community Engagement, Services for Students with Disabilities, 512-471-6259, http://www.utexas.edu/diversity/ddce/ssd/.
Religious Holy Days: A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.
- The students are encouraged to do the projects in groups of two or three.
- All exams are done individually, with absolutely no collaboration.
- Each student must present.
- I strongly encourage you to discuss the projects and assignments with anyone you can. That's the way good science happens. But all work and writeup for the assignment must be your own, and only your own.
- As a professional, you should acknowledge significant contributions or collaborations in your written or spoken presentations.
- The student code of conduct is here. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.
- The penalty for cheating on an exam, project or assignment in this course is an F in the course and a referral to the Dean of Students office.
- You cross over from collaboration to cheating when you look at another person/team's source code. Discussing ideas is okay, sharing code is not.
- You also may not look at any course project material relating to any project similar to or the same as this course's class projects. For example, you may not look at the work done by a student in past years' courses, and you may not look at similar course projects at other universities.
- All submitted work must be new and original.
- All projects/assignments must be submitted in class the day they are due.
- For each day a project/assignment is late, you lose 5% of the points for that project. So if you submit two days after the deadline, your maximum points on that project will be 90%.
- In this class, it is always better to do the work (even late) than not do it at all.
- If you become ill: contact the instructor. A medical note is required to miss an exam.
This course is inspired by (and uses material from) courses taught by Lorenzo Alvisi, Don Porter, Alison Norman, Remzi Arpaci-Dusseau, Simon Peter, and Chris Rossbach.
Copyright Notice: These course materials, including, but not limited to, lecture notes, homeworks, and projects are copyright protected. You must ask me permission to use these materials.
I do not grant to you the right to publish these materials for profit in any form. Any unauthorized copying of the class materials is a violation of federal law and may result in disciplinary actions being taken against the student or other legal action against an outside entity. Additionally, the sharing of class materials without the specific, express approval of the instructor may be a violation of the University's Student Honor Code and an act of academic dishonesty, which could result in further disciplinary action. This includes, among other things, uploading class materials to websites for the purpose of sharing those materials with other current or future students.