General Information¶
Administrivia¶
Instructor: Marco Canini
Time: SuW 10:00AM - 11:15AM / MTh 1:00PM - 2:15PM
Location: Building 9 - Room 4123
Credits: 3
Office Hours: online. By appointments only.
The class is open to CS MS and Ph.D. students. Others may be admitted by permission of the instructor.
Communication¶
ALL communication regarding this course must be via CampusWire. This includes questions, discussions, announcements, as well as private messages.
Presentation slides and paper summaries should be emailed to the instructor directly while prepending [CS345] to the email subject.
Paper reviews must be submitted via HotCRP.
Course Description¶
This class is an advanced course in distributed and networked systems. Part of the class is a primer on great systems research and how to do it.
This course includes a series of lectures inspired by the course “How to Do Great Research” by Nick Feamster and Alex Gray. This lecture component is shared with CS356, which runs parallel to this class.
This course takes the form of a seminar that is based on a selection of papers that either have had a strong impact on distributed and networked systems today, or explore novel ideas that may be important in the future. The syllabus for this course will vary from year to year so as to cover a mixture of older and more contemporary papers. Contemporary papers will be generally selected from the past 5 years, primarily drawn from high quality conferences such as SOSP, SIGCOMM, OSDI, NSDI and EuroSys. Students are expected to read papers before the class, write a summary and “review” of the paper prior to class, and participate in the discussion during the class.
The course has one semester-long project that is aimed at producing a conference/workshop-quality research paper and must involve writing some software. The project must address an open research problem. Suggested project ideas will be provided by the instructor. To get ideas for projects, please DO be courageous and read ahead in the course schedule! Your project topic is expected to be distinct from your “regular” research project. It can be related, but try to strike out a new direction that is truly systems research! It is highly recommended that you work in groups. Teams are suggested to be 2 students. All projects will have to submit three versions of reports (proposal, midterm, and final reports); these submissions should read like research papers (or parts thereof). Up to five “best projects” at the end of the semester will be earmarked for expedited submission to a renowned conference, with the help of the instructor’s involvement even after the semester is over.
Objectives¶
This class is a graduate seminar that covers design and implementation concepts in distributed systems and networked systems by reviewing a selection of classical and contemporary papers. We will study efficient system design and evaluation, as well as learn high-level system issues, with a focus on exciting topics in distributed and networked systems. Research in these areas also tends to be scattered across disjoint sets of researchers and conferences, and the course attempts to study commonalities. On completion of this course students should have a broad understanding of some key papers and concepts in computer systems research, as well as an appreciation of how to argue for or against any particular idea.
In addition to learning about several system design and implementation concepts, this course will teach you:
Many skills that you will keep in your “research toolbox” for the rest of your career.
How to read a research paper in an objective manner.
How to write a critical analysis of the research described in a paper.
How to articulate your understanding of and insights into a research paper.
How to synthesize research themes and topics across multiple papers.
How to defend the research approach, design decisions, and the evaluation methods in a discussion.
About the course¶
Prerequisites¶
Students are expected to have good programming skills and must have taken at least one systems-related course (e.g., from operating systems/CS140, distributed systems/CS240, networking/CS244, or databases/CS245), or instructor consent, is required.
Textbook¶
There is no textbook for the course. You will be expected to attend all lectures and read 1-2 papers per class. The papers are available electronically through the course website.
Organization and workload¶
The class consists of two main activities:
Papers and discussions: We will read 1-2 papers for each class (i.e. 2-4 papers per week), and discuss them in class. You will need to spend about 2 hours reading each paper, and making notes, to prepare you to discuss them in class. This only works if you come to class ready to discuss the papers in detail, which is why 15% of your grade is for in-class participation. There will be as much as 10-15 hours of reading per week. Do not take this course unless you are willing and able to do a lot of reading.
Project: You will do a semester-long open-ended project (see sidebar for more information).
Grading¶
15% In-class Participation
15% Paper Reviews
20% Paper Presentations
50% Project
Groups¶
Projects can be done individually but it is highly recommended that you work in groups. Teams are suggested to be 2 students.
Declare your group’s membership as well as preferences for papers by February 2, 2024.
Note that paper preferences are only hints.
Paper presentations¶
The course will be conducted as a seminar. Only one student will present in each class. Each student will be assigned to present two papers (mandatory and companion) on the same day at least once throughout the semester. Presentations should last at most 45 minutes without interruption. However, presenters should expect questions and interruptions throughout. In the presentation, you should:
Motivate the paper and provide background.
Present the high level idea, approach, and/or insight (using examples, whenever appropriate).
Discuss technical details so that one can understand the key details without carefully reading it.
Explain the difference between this paper and related work.
Raise questions throughout the presentation to generate discussion.
The slides for a presentation must be sent to the instructor at least 24 hours prior to the corresponding class. You should use this powerpoint template for making your slides.
Paper reviews¶
Read all the papers of each day carefully and write your own paper review. Being able to critically judge others’ work is crucial for your understanding. For papers that require summaries, you must address a number of questions. Each critique should be about a half a page and should roughly cover the following questions:
What is the problem addressed by the paper? Is the problem real? Why is this problem important?
What is the hypothesis of the work?
What is the proposed solution’s main idea, and what key insight guides their solution?
Why is the solution different from previous work?
Are system assumptions different?
Is workload different?
Is problem new?
Does the paper (or do you) identify any fundamental/hard trade-offs?
What is one (or more) drawback or limitation of the proposal, and how will you improve it?
Do you think the work will be influential in 10 years?
Why or why not?
The paper reviews of each day must be submitted electronically at least 24 hours prior to the corresponding class. Late reviews will not be counted. You can miss up to 2 paper reviews during the term without penalty. Each missing review beyond the second one will result in 25% decrease in grade for paper reviews. Meaning, failing to turn in 6 or more reviews on time will result in a zero for all paper reviews.
The grade for this part will be assigned as follows: at the end of the term, 2 of your reviews will be randomly selected and graded. The higher grade of the two will be used for grading.
Submit reviews via HotCRP.
Participation¶
Is class participation based solely on attendance? No. Attendance is a necessary but not sufficient condition for good class participation. You are expected to attend all lectures (you may skip up to 2 lectures due to legitimate reasons), and more importantly, participate in class discussions. If you have any concerns about not being able to regularly attend class (e.g., you will have to miss several classes during the quarter) please discuss this as soon as possible with the instructor. Beyond attendance, we evaluate class participation by observing how prepared students are to discuss the covered paper when they come to class. There will be questions posed to students at random; answers to these questions form a part of the overall grade. This is not a trivial requirement because we expect papers to have been read thoroughly prior to lecture.
Project¶
Research projects are the critical aspect of the course. Your goal is to do publishable quality systems research on an instructor-approved problem; that is, to add to our understanding of how to build systems. Research projects must be written up in a term paper. See details in the Project page.
Exam¶
This class has no exam.
Late work¶
There is no policy on late work. If you cannot submit your work by the deadline, it will not be accepted.
Exceptional circumstances¶
If you have a medical emergency, then email the instructor to request an extension. At times, there may be system problems with the computer infrastructure which may prevent you from submitting your reviews on time. In these cases an extension will be granted to the entire class.
Misconduct policy¶
We will have zero tolerance for academic misconduct. Cheating, plagiarism, and any form of dishonesty will be handled with maximum severity, according to university regulations. If you are ever in doubt about whether an action on your part may constitute unacceptable behavior, please ask the instructor before proceeding—doing so afterward is too late.
Apart from the term project, any work you turn in must be your own and is to be done individually, and the usual code of conduct applies. You must acknowledge any sources of your words, ideas, and software when they are not your own, and you must disclose in advance, without any specific request, any sources you used. Do not use code from a student who took the course in a previous semester.
Generative AI policy¶
The use Generative AI tools such as ChatGPT, Claude, or Bard is by default not allowed. The only exception is if you have received explicit permission from the instructor to use such tools for a specific assignment. If you are found to have violated this policy, you (and your teammates if applicable) will receive a zero on the course components that you used Generative AI for.
Feb 14, 2024 amendment: You may use Generative AI tools to help with the writing process of your reports. However, their use must be limited to rephrasing sentences, and fixing typos and language mistakes. Moreover, after using these tools, you must review and edit the content as needed. Finally, you must declare the use of such tools in your work and take full responsibility for the content of the reports. Include this declaration at the end of your work:
Declaration of Generative AI and AI-assisted technologies in the writing process. During the preparation of this work, we used LIST THE TOOL NAMES to edit and improve our writing, i.e. rephrasing sentences and fixing typos and language mistakes. After using these tools, we reviewed and edited the content as needed. We take full responsibility for the content of this report.