|| Home | Research | Teaching | Students | Publications | Curriculum Vitae | Contact ||
CS372: Introduction to Operating Systems
|Home | Course Information | Schedule | Project Information|
It is important for you to realize what grades in this class reflect and what they don't reflect. All we can grade you on is how well you demonstrate that you know the material this semester. We can't grade you on how much of a success you'll be after graduation, how smart/creative/persistent/self-motivated you are, or even how well you'll be able to apply the material in the future. And after all, it is what you do in the future, not what you do this semester, that's really important.
That said, grades will be determined as follows:
The course will be graded on a curve, with the score-to-letter-grade mapping determined by the instructor based on factors such as the difficulty of an assignment and the types of errors people are making, etc. During the semester, I will give rough estimates of where grade cut-offs lie, but these will be deliberately somewhat vague; if knowing where a cut-off is within a few points will affect how you study, you're worrying too much about grades and not enough about the material (Plus, it's a really bad idea to gauge your effort by what you think you need to make to get a particular letter grade). I want everyone in the class to do well, and if everyone masters the material and gets good marks, I will happily abandon the curve and give "extra" A's and B's. In particular, I guarantee that anyone who gets a grade of 90% or more of the total points will get an A, anyone with 80% or more will get at least a B, and anyone with 70% or more of the points will get at least a C.
I grade on a curve rather than an absolute scale because it protects students from stressing out if I happen to give an overly hard midterm or final. The downside of grading on a curve is that it tends to lead students to think they are competing against each other. In practice, this is mistaken in a class this large. The largest impact any individual student's performance is likely to have on your grade is less than 0.1% -- in other words, well into the noise.
Also, for this type of project students often stress about whether they will be penalized because their project may not be as elaborate as that of some of the other groups in the class. Again, this is a myth. The project is hard enough without looking over your shoulder at other students. By and large, most students do quite well on the project -- the consequence is that the project has less effect than you might think on the curve. A warning, however: if you punt the project, you will fail the course.
In some courses, the TAs and instructor have to spend a lot of time dealing with re-grading appeals, time that would be better spent helping students learn the material. Absolutely come to us if we make an arithmetic error, but realize that a few points here and there are extremely unlikely to make any difference in your final grade. If you believe that we assigned too little credit for your work, you may submit your work for a re-grade under the following restrictions. (1) All re-grade requests must be submitted with a clear, written statement that explains why you believe the original grade was incorrect. (2) All requests for re-grades must be submitted within 1 calendar week of when the graded work is returned. (3) We will re-grade the entire exam, problem set, or project assignment, and if we were overly generous we will deduct points. Thus, you grade can go up or down on a re-grade.
There will be two exams given at the dates and times listed in the course schedule. If you have a conflict with either time, let the instructor know during the first week of class and we will schedule a makeup for a time before the exam is given to the rest of the class. Both exams will be closed book and will cover material from lecture, readings, problem sets, and the projects.
Perhaps the most valuable part of this class will be the programming assignments. You will construct three significant pieces of an OS. The projects will be done individually. Further details about the project will be covered in later handouts.
We will regularly post problem sets for you to test and improve your knowledge of the material. These homework assignments will be graded only on a credit/no-credit basis. If you submit solutions, you get credit. Otherwise, you donít. The solutions will also be posted. The main intent is for you to use these homework assignments as self exams to assess your understanding of the course material and evaluate your performance. The requirement for submitting the assignments is included only to ensure that you donít procrastinate or ignore the problem sets completely.
No extensions will be given for completing programming projects or homework. Exemptions of the above rules will be allowed in two cases:
1. Illness, which has to be documented by a doctor and approved by the university.
2. Death in the immediate family.
No extensions will be given for any other reason, including participation in the Annual Elbonian Cultural Festival, death of a former president, or a potluck lunch for the local chapter of a political party (yes, we have received such requests in the past).
Cooperation and Cheating
We encourage you to discuss the problem sets and programming assignments with your colleagues. We welcome discussions of possible interpretations of questions, solution approaches, and points of confusion. You are also welcome to use existing public libraries in your programming assignments (such as public classes for queues, trees, etc.) You may also look at operating systems code for public domain software such as Linux. Such activities qualify under approved collaboration practices and you are welcome to take advantage of them.
Note that cooperation is not the same thing as cheating. The project assignments and exams must be the work of the student turning them in. Students who violate University rules on scholastic dishonesty are subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Because such dishonesty harms the individual, all students, and the integrity of the University, policies on scholastic dishonesty will be strictly enforced.
It is generally OK to verbally discuss the concepts needed to do projects assignments. Three guidelines will help you keep on the right side of the line. First, it is never OK to look at the written work of another student or show another student your written work until after all grading on an assignment is completed. This includes looking at paper print-outs, sketching solutions on a white board or napkin, or looking at a screen to help debugging. It should go without saying that copying other people's code or solution sets is strictly prohibited. Second, after discussing a problem with another student (or the TA!), go watch Gilligan's island for a half hour before going back to working on the assignment. If you can't remember what the person said after a half hour, you didn't really understand it. Third, everyone in the class is expected to take appropriate measures for protecting one's work. For example, you should protect your files and printouts from unauthorized access. Note that these guidelines are necessarily generalizations and can not account for all circumstances. Intellectual dishonesty can end your career, and it is your responsibility to stay on the right side of the line. If you are not sure about something, ask.
Accommodations for students with disabilities