Computer Science 318
The course grades will be determined roughly as follows:
Project submissions are due at 11:55PM on the due date. Late submissions are marked down using a popular function. In this way, an assignment that is only a few hours late doesn't get penalized that much. A late grade is computed as follows:
grade = original_grade * exp(-time_late/three_days)
Examples: work turned in five minutes late gets 99.9% credit, one hour late gets 98.6% credit, six hours late gets 92.0% credit, one day late gets 71.7% credit, three days late gets 36.8%, and one week late gets 9.7%.
Exceptions will be made only in extreme circumstances and only in advance.
The midterm exam and the take-home quizzes will be designed to test how well students understand the materials taught in the lectures as well as in the projects. Please watch the schedule of this web page for the time and the location of the midterm.
It is strongly recommended that students read the suggested reading materials before the corresponding class.
Students receive up to 2 points per lecture towards the attendance and participation grade. Students are expected to attend each lecture and receive 1 point for being present. Contributing to the class discussion earns 1 more point; active and insightful participation earns 0.5 extra credit points.
We believe that students can learn quite a bit from each other. We encourage you to help each other understand the materials in the course and in particular, to learn from each other in doing the operating system projects. In order to encourage such cooperation, we will give you the opportunity to tell us those students who helped you the most in understanding the material. Such information will be turned into extra points for the helpers at the end of the class.
There is a clear distinction between cooperation and cheating. If you discuss an issue with a classmate, put your understanding from that discussion to the Gilligan's Island test! Step away from the discussion for 30 minutes (e.g. long enough to watch an episode of the old Gilligan's Island sitcome) before sitting down to code by yourself. What remains in your brain (no notes) and ends up the code is more likely to be original. Copying other's code or designs is strictly prohibited. We will punish transgressors severely.
Do not, under any circumstances, copy another person's code. Incorporating someone else's code into your code in any form is a violation of academic regulations. This includes adapting solutions or partial solutions to assignments from any offering of this course or any other course. There is one exception to the code-sharing rule: You may adapt code from this year's COS 318 course materials for that project provided that you explain what code you use, and cite its source in your README file. If you are opting to submit a project late, you may NOT examine or use material from the next project. Similarly, you may not consult course materials from previous years or at other universities.
Copying and transforming someone else's code (by rearranging independent code, renaming variables, rewording comments, etc.) is plagiarism. Some inexperienced programmers have the misconception that detecting such plagiarism is difficult. Actually, detecting such plagiarism is quite easy. Not only does such plagiarism quickly identify itself during the grading process, but also we can use software packages, such as Alex Aiken's renowned MOSS software, for automated help.
If we suspect a student of plagiarism on an assignment, then we will refer the case to the Committee on Discipline. If the Committee on Discipline finds the student guilty of plagiarism, then the standard penalty is automatic failure of the COS 318 course. The Committee on Discipline may impose additional penalties.