/cs380d-s21

UT Austin CS 380D Distributed Systems with Vijay Chidambaram

Primary LanguageGoOtherNOASSERTION

CS 380D Distributed Systems (Spring 2021)

Welcome to CS 380D Distributed Systems. This is a course designed to expose students to the basics of distributed systems. This course has elements of both undergraduate and graduate classes in it. Like undergraduate classes, there will be lectures where I present the fundamentals. Like graduate classes, there will lectures where we will read and discuss research papers. 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. Whenever we are discussing papers, the reading for each class will be heavy. 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/spring2021/cs380d

Canvas Link: https://utexas.instructure.com/courses/1304719

Class Timing and Location: TuTh 3:30 pm - 5 pm, Zoom

Schedule

Instructor: Vijay Chidambaram

Email: vijayc@utexas.edu

Office hours: Fri 3 to 4 PM, Zoom

TA: Bingye Li

Email: libingye@utexas.edu

Office hours: Wed 5-6 PM CST, Zoom

Learning Goals and Objectives

By the end of course, the student must know basic concepts in building distributed systems, must have first-hand experience in building and testing a small distributed system, and gain experience in either distributed-systems research or working on open-source distributed systems.

Grading

10% Weekly reading
20% Midterm-1
20% Midterm-2
25% Project 1: Implementing a distributed key-value store
25% Project 2: Research project

Letter grades

Letter grades will be given out based on absolute scores. Typically, grades are given as follows:

>= 94 A
>= 90 A-
>= 87.5 B+
>= 85 B
>= 80 B-
>= 77.5 C+

Extra Credit

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.

  1. Introduction note. Submit a PDF to the Canvas extra-credit assignment with your name and photo, introducing yourself. Tell me some interesting facts about yourself! This is worth 0.25% (of the total grade) extra credit.

  2. Class survey. You will receive 0.25% for completing an official survey near the end of class. You will need to upload a screenshot of the completed survey to Canvas.

Exams

There will be two midterms. There will not be a final exam.

Midterm 1: Mar 12th (in-class)
Midterm 2: May 7th (in-class, tentatively)

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.

Projects

There will be two big projects in the course. Students will work in groups of 1--2 for Project 1 and 1--3 for Project 2.

The first project will involve building Raft, a replicated state machine protocol. More details can be found here.

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.

Deadlines (tentative)

Mar 5 Project 1 due
Mar 12 Midterm 1
May 6 Midterm 2
Apr 6 Project 2 Proposal due
May 14 Project 2 Report due

Course Policies

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.

Collaboration

  1. The students are encouraged to do the projects in groups of two or three.
  2. All exams are done individually, with absolutely no collaboration.
  3. Each student must present.
  4. 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.
  5. As a professional, you should acknowledge significant contributions or collaborations in your written or spoken presentations.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. All submitted work must be new and original.

Late Policy

  1. All projects/assignments must be submitted in class the day they are due.
  2. 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%.
  3. In this class, it is always better to do the work (even late) than not do it at all.
  4. If you become ill: contact the instructor. A medical note is required to miss an exam.

Acknowledgements

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.

The course follows Prof. Martin Kleppmann's course on Distributed Systems, and uses his lecture slides.

Copyright

Copyright Notice: These course materials, including, but not limited to, lecture notes, homeworks, and projects are copyright protected. You must ask me, or the original author, 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.