Course Description:

COS-518 is a graduate course in computer systems. Its goals are:

  • To understand the core concepts of computer systems, with a focus on distributed systems.
  • To understand the state of the art in storage systems, big data processing systems, and distributed applications.
  • To understand how to engage in systems research and development.
  • To provide students with some perspective of systems development

This course particularly focuses on the reading and study of recent research papers, with a heavy focus on distributed systems. We will discuss these papers in a small group in the course precepts.

The course includes introductory lectures to related topics. These lectures are joint with COS 418, see the lecture schedule here

The course also includes a semester-long implementation-heavy group project. COS-518 assumes a basic familiarity with computer systems and networking concepts.

Information

  • Lecture: Mondays and Wednesday, 10:00am - 10:50am. McCosh 46.
  • Precepts:
    • P01: Monday 1:30pm - 2:20pm, CS 301.
    • P02: Monday 2:30pm - 3:20pm, CS 301.
  • Instructors:
  • Grading: midterm (20%), final (20%), precept participation (20%), project (40%)

Paper Discussion

A major component of this course is reading and discussing systems papers in the weekly precepts. We are only discussing 1 paper per week so we can discuss them in depth. You should closely read each paper and come prepared with several points that will substantially contribute to the group discussion.

Your precept participation grade will be determined based on substantial contributions to paper discussions as tracked by the instructor.

What we expect you to know and prepare before each discussion is here.

Paper Schedule

Exams

There will be a midterm and final based on lecture content that will be given jointly with COS 418. Once the midterm and final are scheduled they will be posted on the schedule. The exams will be in-person.

Projects

The semester-long project in COS518 is an systems-building project. Projects should be done in groups (either of size two or three, to be determined by the instructor after the course size finalized) and must involve significant system programming. All group students are expected to share equally in the implementation.

We expect most students to satisfy the group project by reimplementing and reproducing the results from a paper we read during the semester or on a like topic.

Students are also able to satisfy the project by performing novel research projects, but such projects must be closely related to the material and topics taught in the COS518 curricula. The instructors will take a narrow view as to what projects satisfy this criteria (e.g., your ongoing research on software-defined networks for self-driving cars will likely not be approved).

Timeline

  • Initial project proposal & Team selection (Monday, February 26)
  • Finalize project proposal (Friday, March 8)
  • Final project report (Dean's Date, Tuesday, May 7)

Project Proposal

There are two types of projects in this class: reproducing others’ research results, and novel research. Proposals should be submitted as public questions on EdStem.

Project Proposal: Reproducing Research

For reproducing research projects, students should write a note (a public one, so that your teammates can see/join in the discussion). The should be a few paragraphs that include the following information. Please use proposal/reproduction as the category/subcategory of your question.

  • Background
    • Name of paper
    • Brief summary of paper’s problem domain / challenge, goals, and technical approach
    • Summary of paper’s current implementation, evaluation strategy, and key results
  • Plan:
    • Proposed implementation (language, framework, etc.)
    • Evaluation strategy (testing platform/setup, simulated data/traces, etc.)
    • Key results trying to reproduce
    • Discussion of how you can compare your findings (quantitatively, qualitatively) with previously published results
    • New questions/settings trying to evaluate that are not addressed in the original paper

As the final plan mentions, it is important when reading a paper to ask what questions and/or settings are not included in an evaluation. For example, what happens if a workload shifts from being uniformly distributed to Zipfian? What if failures occur in a different fashion than evaluated? What if the data in a big data processing system has a different structure than evaluated (e.g., the "graph" that the data represents has a different edge distribution)? And so forth…

Project Proposal: Novel Research

For novel research projects, students should write a note (a public one, so that your teammates can see/join in the discussion). The should be a few paragraphs that include the following information. Please use proposal/novel as the category/subcategory of your question.

  • Background
    • What problem is research attempting to solve?
    • Why is the problem important?
    • How does this relate directly to topics or papers covered in class
  • Novelty
    • What is the current state-of-the-art in related work, and why are they insufficient?
    • What is your (novel) technical insight/approach to solving this problem
  • Plan
    • Proposed implementation (language, framework, etc.)
    • Key questions that evaluation will address
    • Evaluation strategy (testing platform/setup, simulated data/traces, etc.)
    • What does “success” look like? How do you quantify/compare results to alternative approaches / related work?

If students are concerned that their proposal project might not be sufficiently relevant to COS 518 to satisfy the topical criteria, please contact instructors earlier than later. Proposals not closely related to the topical matter may be rejected outright as not appropriate.

Project selection

The project proposal from above will be finalized. This may involve one or more back-and-forth between instructors and group (likely via EdStem).

Final report

Rather than a research paper written as a Latex document, your final report will be a blog post that expands on a similar organization and topics as addressed in your initial project proposal.

For reproduction projects, the post should have a particular focus and discussion on the evaluation (setup, comparative results, discussion of differences, and so forth).