CSE logo University of Washington Department of Computer Science & Engineering
 CSE 550: Introduction to Computer Systems Research, Autumn 2016


Instructor: Arvind Krishnamurthy
Office hours: Wed 10-11am in CSE544, or by appointment.

TAs: Niel Lebeck (nl35 AT cs)
Office hours: by appointment (send email)

Lectures: MW 11:00am-12:20pm, in EEB 037.

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: There is no midterm or final for the course.

Prerequisities: 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 one or two papers before each class, and contributing your thoughts on each assigned paper to the class discussion board before the class that covers it.


Mailing list: When you register for the course, you'll automatically be added to the class mailing list (cse550a_au16@uw.edu). 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.

Calendar: Calendar that lists all of the schedule including lectures, assignments, and project due dates.

Discussion Board and Dropbox

Here's the link to the class discussion board:
and the link to the dropbox for uploading assignments/projects:
and the link to project ideas:
Google docs
The discussion board can be used for two purposes:

Paper schedule

Here is the schedule of papers that will be fleshed out as the quarter progresses. Note that you're required to read assigned papers, but the optional additional papers are just that: purely optional, for your interest, if you choose to go deeper on your own. Discussion board entries for the assigned papers are due by 9am on the day of the associated lecture.





Sept 28 Introduction slides Assignment #1
Oct 3 Concurrency slides
Oct 5 Web services slides
Oct 10 Transactions slides
Oct 12 Distributed Transactions slides
Oct 17 Distributed Computation slides
Oct 19 Consensus slides
Oct 24 Paxos (contd.)
  • Paxos made simple
Oct 26 Virtualization slides
Oct 31 Software virtual memory slides
Nov 2 File Systems slides
Nov 7 Large scale storage systems slides (also BigTable)
Nov 9 Consistent Storage
Nov 14 Consistent Storage slides
Nov 16 Kubernetes
  • Guest lecture by Alex Mohr (Google)
Nov 21 Big Data
Nov 23 No class
  • Pre-thanksgiving
Nov 28 DHTs/P2P slides
Nov 30 Networking: Cong control slides
Dec 5 Networking: Routing slides
Dec 7 Networking: General discussion slides

Problem Sets

Everybody registered for the course should already have had an instructional UNIX account created for them by the department support staff, and have been notified of it. Using this account, you can remotely log into (via ssh) the attu.cs.washington.edu compute cluster. You can find more information about instructional resources here.

You should also be able to do the programming assignments on your own personal machines; none of them require large or exceptionally powerful machines. You might find it useful to install VMware for assignments involving Linux development. Both VMware Player and VMware Server are free, and downloadable from VMware's site.

Late days policy: you can accumulate a total of four late days for the assignments without any penalties.