Overview

This course will provide the common intellectual foundation for systems research, suitable as a terminal course for those not interested in further study in systems, or as a gateway course to the various specialized systems courses the department offers. The course will cover the common foundation for research in operating systems, databases, cluster and wide area distributed systems, networking, and parallel systems. The course consists of four major components:

  • You will read one or two papers per lecture. For each paper, you will craft a canvas entry contributing an answer to one of the questions we pose in advance (some of which could involve running some simple measurements).
  • Teams of three will present each paper each day, following a brief overview of the area by me. Signups are here.
  • We will hand out two projects sets, which will consist of a mixture of coding, measurement, or design questions. You can perform the problem sets in teams of two or three.
  • Project three will either be an independent research project or a third assignment. There will be intermediate milestones associated with both, as well as a final report and/or presentation at the end of the quarter.

There is no midterm or final for the course.

Prerequisites: The basic prerequisite is to have taken an undergraduate operating systems course (CSE 451 or equivalent). If you haven't taken an undergrad OS course, you might still be able to manage the course but please come talk to the teaching staff. We will not be covering undergraduate material in this course.

Papers: You will be responsible for reading a research paper or doing an experiment, and contributing your thoughts on each assigned paper to the class discussion board before the class that covers it.

Discussion Board

Here's the link to the canvas page for the class discussion board and assignment uploads:

Canvas Course Link

The discussion board can be used for two purposes:

  • Course discussion: This is a great place for you to post questions about papers, programming assignments or design exercises, to look for a project partner, or anything else class-related.
  • Paper discussions: For each lecture other than the first, we will post a small set of discussion questions based on the assigned papers. We'll create one thread per discussion question set. You're required to add a comment to the discussion for each of the threads by 9am on the day of the class. (This is to give time for everyone to read the canvas responses before class.) For each thread, pick one of the questions in the question set to answer. Please keep canvas responses short: they can be anything that provides insight into the question being asked. We will automatically grant two mulligans during the quarter.

Your canvas responses will be graded, but with a very simple 2-bit scale. If you don't post a canvas response, you get a 0. If you post something, but if there are significant problems with what you've posted, e.g., we're not convinced you read and thought about the paper, you get a 1. If you post something interesting and thoughtful, you get a 2; we expect most of your postings to get this grade. Once in a while, if you post something that is surprisingly insightful or otherwise exceptional, you'll earn a 3; these grades will be rare.

Adminstrivia

Mailing list: Most communication will happen through canvas, which will send annoucements to your u.washington.edu email address. Mailing list: We will also be creating a class mailing list, though we do not expect it to be used often. To manage your subscription, visit the mailing list web page. You've been subscribed using your u.washington.edu email address. But, you can modify your subscription to use an email address of your choice. Note that you can only post to the mailing list from your subscribed email address.