Princeton University
Computer Science Department

Computer Science 217
Introduction to Programming Systems

Jennifer Rexford

Spring 2011


Directory
General Information | Schedule | Assignments | Announcements | Policies

Lectures

Lecture attendance is mandatory. You will be responsible for the material presented in every lecture. Some of that material will not be in the textbooks.

Precepts

Precept attendance is mandatory. As with lectures, you will be responsible for the material presented in every precept. Some of that material will not be in the textbooks.

You should attend the precept to which you are assigned.

Concerning attending another precept instead of your precept:

Generally it is not acceptable to attend another precept instead of your precept. After all, your preceptor will determine your class participation grade. Your grade will be poor if you do not participate in your precept. However, it is acceptable to attend another precept instead of your precept occasionally whenever a conflict with your precept arises. (Indeed you should do so.) In that case, as soon at you become aware of the conflict, send e-mail to your preceptor and the other preceptor. The other preceptor thus will know to duplicate handouts for you, make sure you have a seat, etc.

Concerning attending another precept in addition to your precept:

Generally it is not acceptable to attend another precept in addition to your precept. After all, if even a small fraction of the course's students did that routinely, then some precepts would be very large (or even overflow) routinely. Precepts containing a large number of students are less effective than those containing a small number. However, it could be acceptable to attend another precept in addition to your own occasionally. In that case, send e-mail to your preceptor and the other preceptor the day before the precept, asking permission to attend. The preceptors then will make the decision. If the decision is "yes," then the other preceptor will duplicate handouts for you, make sure you have a seat, etc.

Assignment Late Submission

You should submit your work on an assignment (electronically) before its due time. If you submit your work late, we will give you credit for it on this scale:

If an assignment consists of multiple files, then we will consider the date/time of submission of your work as a whole to be the same as the date/time of submission of the last file that you submit.

We will grant extensions only in the case of illness (with a doctor's note) or extraordinary circumstances. If illness or extraordinary circumstances will cause you to submit an assignment late, then you should discuss the matter with your preceptor as soon as possible. Please plan your work on the assignments so that travel, religious holidays, etc. do not cause you to submit it late. Heavy workload is not an extraordinary circumstance.

You have one "late pass" that allows you to submit any one assignment up to three days late without penalty. You can apply your late pass to at most one assignment; you cannot split your late pass across multiple assignments. If you wish to use your late pass on an assignment, then you must tell your preceptor via e-mail before the assignment's due date/time.

Some of the assignments involve working in teams. You may use your late pass on a team assignment if and only if all of your teammates use their late passes on that assignment. (The implication is that you may not use your late pass on a team assignment if any one of your teammates already has used his/her late pass.) If you wish to use your late pass on a team assignment, you and each of your teammates must tell the pertinent preceptors via e-mail before the assignment's due date/time.

The final assignment is due at 5:00PM on the Dean's Date. As per University policy, we cannot accept work on any assignment after 5:00PM on the Dean's Date without permission from the appropriate Dean. So it is not possible to use your late pass on the final assignment.

Assignment Conduct

The policies described in this section supplement the University's academic regulations, making explicit what constitutes a violation for this course. Princeton's Rights, Rules, Responsibilities handbook asserts:

The only adequate defense for a student accused of an academic violation is that the work in question does not, in fact, constitute a violation. Neither the defense that the student was ignorant of the regulations concerning academic violations nor the defense that the student was under pressure at the time the violation was committed is considered an adequate defense.

If you have any questions about these matters, please consult a course staff member. Violators will be referred to the Committee on Discipline for review.

The COS 217 assignment collaboration policy is derived from that of Princeton's COS 126 course...

Concerning receiving help from others...

Programming is an individual creative process much like composition. You must reach your own understanding of the problem and discover a path to its solution. During this time, discussions with other people are permitted and encouraged. However, when the time comes to write code that solves the problem, such discussions (except with course staff members) are no longer appropriate: the code must be your own work. If you have a question about how to use some feature of C, Unix, etc., you certainly can ask your friends or the teaching assistants, but specific questions about code you have written must be treated more carefully.

For each assignment you must specifically state, in your readme file, the names of any individuals from whom you received help, and the nature of the help that you received. That includes help from friends, classmates, lab TAs, course staff members, etc.

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 the COS 217 course materials provided that you explain what code you use, and cite its source in your readme file.

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 (and do) 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 217 course. The Committee on Discipline may impose additional penalties.

Concerning providing help to others...

For each assignment you must specifically state, in your readme file, the names of any individuals to whom you provided help, and the nature of the help that you provided.

Abetting plagiarism or unauthorized collaboration by "sharing" your code is prohibited. Sharing code in digital form is an especially egregious violation. Do not e-mail your code or make your code available to anyone. Do not share your code with anyone even after the due date/time of the assignment.

You are responsible for keeping your solutions to the COS 217 programming assignments away from prying eyes. If someone else copies your code, we have no way to determine who is the owner and who is the copier; the Committee on Discipline decides. If you are working on a public cluster computer, make sure that you do not leave the computer unattended, and that you delete your local files and logout before leaving.

You should store all of your assignment files in a private directory. You can create a private directory using commands similar to these:

% mkdir cos217
% chmod 700 cos217

Exam Conduct

Conduct during in-class exams is covered by the University Honor Code. If we suspect a student of inappropriate conduct during an in-class exam, then we will refer the case to the Honor Committee. If the Honor Committee finds the student guilty of inappropriate conduct, then the standard penalty is automatic failure of the COS 217 course. The Honor Committee may impose additional penalties.

Electronic Communication

These are the course's policies concerning electronic communication:

Grading

Your final grade will be weighted as follows:

Component Approximate Weight
First 6 Assignments 37.5%
Final Assignment 12.5%
2 Exams 40%
Class Participation 10%