See the course home page.
I reserve the right to change this, but grades will be assigned roughly as follows:
- Projects: 35%
- Homeworks: 10%
- Midterms: 25%
- Final: 30%
There will be two midterm exams and a final exam for this course:
- Midterm 1: Friday Jan 26, 2001
- Midterm 2: Friday Feb 16, 2001
- Final exam: 8:30-10:20am, Wednesday March 14, 2001
There will be two kinds of homework assignments given throughout the class:
- Reading: you will be given reading assignments, from either Silberschatz or from the Linux Kernel (hereafter called TLK), associated with each lecture. You should finish the reading before coming to the lecture- I will assume you've done this reading, and my lectures will enhance the material, rather than regurgitating it.
- Textbook-style questions: occasionally, I will assign written homework based on either questions from Silberschatz, or made-up questions. These assignements should be handed in at the end of class on the due date. (Make sure you read the late policy below.)
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.
Correspondingly, you need to be quite 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. This will put you at a disadvantage relative to your classmates...
(Many of these policies are taken verbatim from previous instances of this course.)
- Late Policy: unless otherwise indicated, assignments and projects are due by the end of lecture 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. So, if an assignment is due on Jan 8, it must be in the TA or lecturer's hands by 10:30am in class on that day. We will not consider granting Incompletes as grades.
- Reasonableness: the "Reasonable Person Principle" applies throughout this course. This principle simply states that a reasonable request made in a reasonable fashion shall be reasonably handled by reasonable persons. The TA's and I are reasonable people: we expect that everybody else involved in this class will be as well.
- Cheating vs. Collaboration: Collaboration is a very good thing. On the other hand, cheating is considered a very 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.
So how do you draw the line between collaboration and cheating? Here's a reasonable set of groundrules. Failure to understand and follow these rules will constitute cheating, and will be dealt with as per university guidelines.
The Gilligan's Island Rule: This rule says that you are free to meet with fellow students(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 Freedom of Information Rule: To assure that all collaboration is on the level, you must always write the name(s) of your collaborators on your assignment.