CSE 451, Introduction to Operating Systems, Spring 2013
Last spring we took a risk: We used a still-being-written textbook, Operating Systems: Principles and Practice.
Why? Because the textbook that we had traditionally used was an expensive piece of crap. UW CSE professor Tom Anderson and his Ph.D. alumnus Mike Dahlin (formerly at UT Austin, now at Google Seattle) set out to produce a new text. The "test driving" went well (despite the fact that we had to tread water for a week waiting for the file systems chapter to be finished ...). This year, it's the real thing - you can buy it from Amazon.
Important: The text is quite sophisticated. You won't get it all on the first pass. The right approach is to re-read each chapter once we've covered the corresponding material in class; more of it will make sense then. Don't save this re-reading until right before the mid-term or final - keep up with understanding the material!
The course discussion board has a section for comments, errata, etc., regarding the text.
The vast majority of administrative information regarding this course (reading assignments, homework assignments, project assignments, helpful hints, etc.) will be communicated via the class email list. Be sure to check your CSE 451 email at least daily!
There's a class discussion board, with separate threads for various topics. Please try to use the appropriate thread! Check the discussion board daily!
We reserve the right to change this, but grades will be assigned roughly as follows:
- Projects: 40%
- Midterm: 20%
- Final: 30%
- Participation: 10%
We'll post all grades to a Catalyst GradeBook here.
There will be one midterm exam and a final exam for this course -- both are closed book, closed notes:
- Midterm: Monday May 6th, in class
- Final: Wednesday June 12th, 2:30-4:20
- Reading: You will be given reading assignments associated with lecture and section. You should finish the reading before coming to class - we'll assume you've done this reading, and the lectures will enhance the material, rather than regurgitating it.
- Textbook-style questions: In past years, we have assigned dippy textbook exercises to encourage students to keep up with the reading. Students hated doing these almost as much as TA's hated grading them. So, in response to popular demand, they have been nuked. (The text does contain some very well conceived exercises. You should look at these on your own, and ask questions in class or section about them. We may also suggest some specific exercises for your attention, but will not collect and grade solutions.)
As you've probably guessed from the allocation of grades, programming projects will be a major portion of this class. This quarter, we will be hacking the Linux kernel in various ways; our goal is for you to "get your hands dirty" with the guts of a real operating system.
Projects 1, 2, and 3 will be done in 2-person teams. (Project 0 is a C warmup that should be completed individually.) You'll need to form teams during the first week of class.
You will need to be comfortable programming in C. (If you know C++, then you basically already know C.) If you're not already well-versed in C programming, you will need to teach yourself, and do so in a hurry. The standard reference is The C Programming Language, Brian W. Kernighan and Dennis M. Ritchie.
- Late Policy: Unless otherwise indicated, assignments and projects are due at the start of class or section on their due date. If you hand in an assignment late, we will take off 20% for each day (or portion thereof) it is late. We will not consider granting Incompletes as grades.
- "Reasonable Person Principle": Let's all be "reasonable people" working on the same team to make this a great learning experience. The "Reasonable Person Principle" simply states that a reasonable request made in a reasonable fashion shall be reasonably handled by reasonable persons.
- Cheating vs. Collaboration: Please read CSE's Academic Misconduct Policy.
Collaboration is a good thing. On the other hand, cheating is a serious offense. Please don't do it! Concern about cheating creates an unpleasant environment for everyone. If you cheat, you risk losing your position as a student in the department and the college. The department's policy on cheating is to report any cases to the college cheating committee. What follows afterwards is not fun -- for anyone!
So, how do you draw the line between
collaboration and cheating? A great one-sentence guideline
is highlighted in our Academic Misconduct Policy:
"In general, any activity you engage in for the purpose of earning
credit while avoiding learning, or to help others do so, is likely to
be an act of Academic Misconduct."
Note that this encompasses not just excessive reliance on students who are in
the course this quarter, but excessive reliance on work done in previous quarters,
at other universities, by the textbook authors (e.g., homework solutions that may
be available on the web), etc. (Hopefully it will astonish you
to learn than in past quarters a few students have copied
answers to the textbook exercises from the web, betting that
the TAs were too lazy to type the occasional high-falutin' phrase
into Google. This is a perfect example of "earning credit while
Here are some additional groundrules that may be helpful:
The Gilligan's Island Rule: This rule says that you are free to meet with fellow student(s) and discuss assignments with them. Writing on a board or shared piece of paper is acceptable during the meeting; however, you should not take any written (electronic or otherwise) record away from the meeting. This applies when the assignment is supposed to be an individual effort or whenever two teams discuss common problems they are each encountering (inter-group collaboration). After the meeting, engage in a half hour of mind-numbing activity (like watching an episode of Gilligan's Island) before starting to work on the assignment. This will assure that you are able to reconstruct what you learned from the meeting, by yourself, using your own brain.
The Credit Your Sources Rule: To assure that all collaboration is on the level, you must always write the name(s) of your collaborators or other sources on your assignment. This and other rules are listed in CSE's Academic Misconduct Policy.