thechargedneutron / cs380d-f23

CS 380D Distributed Systems at UT Austin with Vijay Chidambaram

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CS 380D Distributed Systems (Fall 2023)

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
  • Distributed Storage Systems
  • Byzantine failures
  • Lamport clocks
  • Snapshots
  • Consistency models
  • Replication protocols
  • MapReduce

and more!

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

Class Timing and Location: MWF 3 pm - 4 pm, GDC 4.304

Schedule

Instructor: Vijay Chidambaram

Email: vijayc@utexas.edu

Office hours: Tuesday 3 to 4 PM, GDC 6.436

TA: Sekwon Lee

Email: sklee@cs.utexas.edu

Office hours: Tuesday 11 AM to 12 PM, GDC 6.438D

Learning Goals and Objectives

By the end of course, the student must:

  • know basic concepts in building distributed systems
  • have first-hand experience in building and testing a small distributed system
  • gain experience in either distributed-systems research or working on open-source distributed systems.

Reading Resources

Grading

10% Class participation
15% Exam 1
15% Exam 2
15% Exam 3

20% Project 1: Implementing a distributed key-value store
25% Project 2: Research project or open-source project

Project 2 points split-up:

  • 5% proposal
  • 10% presentation
  • 10% report

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.

  1. Introduction note (worth 0.25%). 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 surveys (worth 0.5%). 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. You will need to upload a screenshot of the completed surveys to Canvas.

  3. Lead class discussions. For any class where we are reading and discussing a research paper, you (or your team) can sign up to present the paper and lead the discussion. This must be done at least 1 week before the paper. You must create and use your own slides for the presentation. Worth 0.5%. Each person can only do this once in class.

Exams

There will be three in-class exams. There will not be a final exam.

Tentative dates:

Exam 1: Sep 18 (in-class)
Exam 2: Oct 16 (in-class)
Exam 3: Nov 15 (in-class)

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

Project 2 is either a research project or an open-source project (students can choose).

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 10 page report.

Open-source project: The team will need to contribute in a meaningful fashion to an open-source project centered around distributed systems. Typically, I recommend teams to solve three significant open issues identified by the developers of the project.

Deadlines (tentative)

Sep 18 Exam 1
Sep 30 Project 1 due
Oct 16 Exam 2
Nov 4 Project 2 Proposal due
Nov 15 Exam 3
Nov 27 -- Dec 4 In-class project 2 presentations
Dec 11 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.
  2. All exams are done individually, with absolutely no collaboration.
  3. Each student must present during the project presentation.
  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.
  11. The use of ChatGPT or other AI tools for generating the code or text in your projects is forbidden.

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 is based partially on his 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.

About

CS 380D Distributed Systems at UT Austin with Vijay Chidambaram

License:Other


Languages

Language:Python 50.2%Language:Jinja 44.8%Language:HCL 2.8%Language:Shell 1.8%Language:Groovy 0.1%Language:Dockerfile 0.1%Language:Makefile 0.1%Language:HTML 0.0%Language:Smarty 0.0%Language:Ruby 0.0%