CSE 550: An Introduction to Computer Systems Research,
announcements and administrivia |
discussion board |
paper schedule |
problem sets |
CSE 550 is a graduate quals course that covers foundational topics for
systems research. The course inlcudes topics common to operating
systems, databases, distributed systems, networking, and parallel
computing. Logistically, the course is appropriate as a gateway
course to specialized systems courses, including 551, 552, and 561, or
as a terminal course for students looking for breadth in systems but
who do not intend on taking additional courses in the area.
The course consists of four major components:
There is no midterm or final for the course.
- You will read one or two papers per lecture. For each paper,
you will craft a blog entry contributing an answer to one of the
questions we pose in advance.
- We will hand out three or four problem sets, which will consist
of a mixture of coding, measurement, or essay-style answers.
- You will form teams of two or three, and each team will pick a
research project to do for the quarter. There will be intermediate
milestones associated with the project, as well as a final report
and presentation at the end of the quarter.
Gribble (office hour: Wednesdays at noon)
TA: Jason Ganzhorn (email: ganzhj at uw dot edu, office
hour Fridays at 1:30 in CSE218)
Lectures: Mondays and Wednesdays, 10:30-11:50am, EEB 042.
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.
Mailing list: When you register for the course, you'll
automatically be added to the class mailing list
(email@example.com). To manage your subscription, visit
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.
- [Dec 5] The final project presentations will happen on
Wednesday (Dec 7). Here's the scheduled order of project
- [Nov 14] The lecture on Nov 16th is cancelled.
We'll discuss Coda on Monday (Nov 21st) instead.
Also, next week is Thanksgiving, so there won't be a class on
- [Oct 17] The late policy for the course has been posted.
- [Oct 17] Assignment #2 is now online.
- [Oct 6] The first set of deadlines for the projects, as well
as a few project suggestions, are now online.
- [Sept 26] The first lecture for the course will be on Wednesday
September 28th, as scheduled. If possible, please read the UNIX
timesharing paper before class.
Here's the link to the class discussion board:
The discussion board has three areas:
- Course announcements. I'll cross-post any announcements on this
web page and the class discussion board.
- 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. We'll create one thread per discussion question
set. You're required to add a unique 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 blog entries before class.) For each
thread, pick one of the questions in the questionset to answer. Note
that the earlier you post, the easier it is to be unique. Please
keep blog entries short: they can be anything that provides insight
into the question being asked. We will automatically grant two
mulligans during the quarter.
Your blog entries will be graded, but with a very simple 2-bit
scale. If you don't post a blog entry, 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.
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 we'll also
list some papers that are optional or that you should quickly scan.
Blog entries for the assigned papers are due by 9am on the day of the
Transactions and Recovery
Caching and Coherence
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 problem sets, 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. Most of the
rogramming assignments will specify the programming environment or
tools you should use; but, if none are specified, 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.
You should use the course
dropbox to submit your problem set solution.
For the project component of this course, you should self-form into
teams of two, pick your own systems research problem, and explore the
problem during the quarter. At the end of the quarter, you'll produce
a writeup in the style of a research paper, as well as a 10 minute
presentation during the final exam slot.
Here are some project ideas.
- Friday December 9th, 5pm: you owe a 10-page writeup with your
project results. Your writeup should in in the form of a research
paper, similar in structure to the various papers we read throughout
the quarter. Email your writeup to Steve and cc Jason.
- Wednesday December 7th: your team should prepare a 10-minute
presentation on your project to be given in-class. Your
presentation should, roughly:
- define the problem you worked on
- describe related work you built upon
- present the method, design, or implementation of your system
- evaluate your solution, showing how it solved the problem,
and characterizing any limitations or tradeoffs you encountered
- Friday, November 4th: email a 1-2 page status report to Steve
and Jason. Your report should describe (a) what problem you're
solving, (b) how you're solving it, (c) what you've done so far, (d)
what you plan to have done by end of quarter, and (e) anything
you're worried about or need help with.
- Wednesday, October 12th: form your teams and email Steve and
Jason your team membership
- Friday, October 14th: decide on your project, write a half-page
project proposal, and email that to Steve and Jason. Your proposal
should outline what question you intend to answer, how you think
you'll answer it, and anything you need help with (e.g., getting
access to planetlab, or a compute cluster, etc.).
Paper blog entries
Blog entries are due by 9am on the day of the associated lecture.
Late blog entries will receive a grade of zero. However, you get two
free mulligans for the quarter; more specifically, we will calculate
your blog-entry grade using the top N-2 scores of your blog entries.
You can hand in assignments late, but with the following penalty
- If you hand in an assignment anywhere from one second late to
24 hours late, 10% will be subtracted from your grade for the assignment.
- If you hand in an assignment anywhere from 24 hours late to 48
hours late, 25% will be subtracted from your grade for the assignment.
- If you hand in an assignment more than 48 hours late, you'll
receive a zero for it.
Your project deliverables may not be late, unless you have made prior
arrangements with Steve.
Obviously, if there are reasonable extenuating circumstances, we'll be
reasonable in adapting this policy to your circumstance. But, if you
know you're going to be late, being reasonable implies contacting us
well in advance.