CSEP 551: PMP Graduate Operating Systems,
CSEP551 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.
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.
Office hours: Tuesday 5pm-6pm, in CSE578, or by appointment.
TA: Owen Kim (ohechkay AT cs DOT washington DOT edu)
Office hours: by appointment (send email)
Lectures: Tuesdays, 6:30pm-9:20pm, in EEB 037.
Papers: you will be responsible for reading approximately three
papers before each class, and contributing your thoughts on each
assigned paper to the class discussion board before the class that
Assignments: every other week or so, I'll assign a
small, topically related programming assignment or design exercise
related to the topics we're covering.
Exam: near the end of the quarter, I'll hand out a take-home
final exam. The questions will test your understanding of the
material we cover in the reading and during lectures. You'll have a
few days to finish and turn in the final exam.
Mailing list: When you register for the course, you'll
automatically be added to the class mailing list
(firstname.lastname@example.org). This list will first be created on
Wednesday, January 4th. To manage your subscription after then, visit
list web page. You will be 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.
Here's the link to the class discussion board:
The discussion board has three areas:
Here's the schedule of papers for the
- Announcements. I'll cross-post any announcements on this
web page and the class discussion board.
- General 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
- Paper discussions. For each lecture other than the
first, we will post a small set of discussion questions based on the
assigned papers. You're required to add a unique comment to the
discussion of one of the questions by noon on the day of the
class. (This is to give time for everyone to read the discussion
entries before class.) Note that the earlier you post, the easier it
is to be unique. Please keep your entries short: they can be
anything that provides insight into the question being asked. We
will automatically grant two mulligans during the quarter.
I'll post papers about two weeks in advance of them being due. Note
that you're required to read assigned papers, but the optional
additional papers are just that: purely optioin, for your interest, if
you choose to go deeper on your own. Discussion board entries for the
assigned papers are due by noon 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. I'd recommend doing your work on Linux; I'd start
with a standard Linux Ubuntu distribution. Note that the department
virtual machine images available with the departmental linux
installation on them. You'll need to get ahold of VMware to use them.
A few rules of the road are worth mentioning. For design
questions, you should feel free to talk with each other about the
question and ideas that you come up with. You should not, however,
share your written answers with each other directly. If you do
discuss ideas with each other, please cite who you discussed
with in your turned in work. This is mostly so that you get in
the habit of properly attributing collaborations.
Similarly, 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 programming assignment directly: you must implement
your own code to solve each programming assignment. Unless the
programming assignemnt specifies otherwise (and a few of them will),
tou 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. As before, if you do discuss a programming
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.
- Assignment 1
out: Monday, January 9th, 2012
due: Monday, January 30th, 2012, by 5pm
- Assignment 2
out: Tuesday, February 7th, 2012
due: Monday, February 27th, 2012, by 11:45pm
- Assignment 3
out: Tuesday February 28th, 2012
due: Friday March 16th, 2012, by 11:45pm