www.cs.washington.edu/education/courses/451/00au/overview.htm
Grading Unless legal action is taken against me, I won't have a standard formula for grades. The goal of the course is to help you have an understanding of operating systems by the time the course ends. The goal of the final grade is to reflect my confidence in your understanding. With that in mind, the fact that you didn't know what EDF meant on a mid-term is of little importance if you do at the time of the final. The goal of this approach is to be more fair, and to emphasize learning rather than test taking or spending hundreds of hours on each assignment. On the other hand, it's quite subjective, so of course some quantitative measures will be used. As a rough guideline, in the absence of all information about you (for example, I have no idea who you are when I see your name on the grade sheet), the weighting will be roughly 30% for the two midterms, 20% for the final, 40% for the projects, and 10% for the homeworks. Overall, I'd be happier knowing you really understood some things in depth, having thought about them beyond the bounds of the course material, even if there were other things you weren't so versed in, than to have a shaky but even understanding of everything. If you have a solid basic understanding, when you need to understand something in the future you'll recognize that, know how to find out what you need, and manage it without problem. If you never really understand the foundation, though, what you'll know is just whatever remains of the course facts, which is much less valuable. Homeworks Reading and textbook-style questions will be assigned with some regularity. For instance, here's the first assignment: Due: Thursday before Section Read Chapters 1-3 of the Silberschatz book.
We reserve the right to partially grade such assignments, including the extremes of grading all the questions and grading none. Programming Project This is a "project course," meaning that part of its role in our curriculum is to give you significant programming experience. The course has traditionally used a hardware/OS simulator as the basis of the project. If you want to know about how something is done, you'll know how to find out. The projects will be designed to require much more reading of code than writing. The project descriptions will not give away every detail - the projects are, in part, just excuses to have to look at the code. All that said, kernel hacking is fundamentally different from application code hacking (which is one of the points). For one thing, the consequences of having a bug are much more serious. At the same time, the debugging infrastructure is much more crude. Also, the run->bug->edit code->recompile->run sequence takes a lot more time, because running the new version requires at least one reboot of the machine. Occasionally, bugs will blow away the system, and you'll have to reinstall. All of this places a premium on thinking about what you've written, and understanding how things work, rather than just trying out potential fixes as fast as you can (as that will not be very fast). If you're a Windows-lover, you'll be pleased to see what the Linux code looks like. Working on the Project We'll be using the Special Projects Lab, Sieg 231.
|