CSE logo University of Washington Department of Computer Science & Engineering
 CSE 551: Graduate Operating Systems, Winter 2011

[ announcements and administrivia | discussion board | paper schedule | assignments | projects ]

CSE 551 is a graduate course on operating systems, and more broadly, software computer systems in general. This course will cover a wide array of research topics in systems, starting from historical perspectives and ending with modern topics. The class has three components: reading and reviewing research papers, solving a few programming assignments / design exercises, and doing a research project of your own.

Instructor: Steve Gribble
TA: Dane Brandon
Lectures: Tuesdays and Thursdays, 10:30-11:50am, EEB 045.

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, please come talk to Steve. We will not be covering undergraduate material in this course.

Papers: you will be responsible for reading and 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.

Programming assignments: every other week, I'll assign a small, topically related programming assignment or design exercise related to the topics we're covering.

Projects: you'll pick a topic of your choice, with some suggestions provided by Steve, and then do a mini research project on that topic in teams (preferably teams of 2). At the end of the quarter, you'll owe a project writeup and presentation to the class.


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


Discussion Board

Here's the link to the class discussion board:
The discussion board has three areas:

Paper schedule

Here's the schedule of papers for the course.

I'll post papers about a week and a half in advance of them being due. Note that you're required to read all assigned papers, but the optional additional papers are just that: purely optioin, for your interest, if you choose to go deeper on your own. Blog entries for the assigned papers are due by 9am on the day of the associated lecture.


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.

A few rules of the road are worth mentioning. You should feel free to talk with each other about the programming assignments, and share ideas as you see fit. You can also make use of Google or other resources. However, you must not share code with each other, or rely on code you find else where, such as the Web, to solve the assignment directly: you must implement your own code to solve the assignment. You can pick whatever programming environment or tools to build on that you like -- e.g., you can make use of shells, interpreters, and within reason, libraries or other building blocks that don't directly solve the problem for you.

If you do discuss the assignment with someone else or find useful sources of information (e.g., code or technical descriptions on the Web), please cite or otherwise attribute all of your sources.