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.
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.
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.
https://catalyst.uw.edu/gopost/board/gribble/20305/The discussion board has three areas:
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.
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.