Princeton University
Computer Science Department

Computer Science 217
Introduction to Programming Systems

Andrew W. Appel

Spring 2007


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.

Assignments: 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:

We will grant extensions only in the case of illness (with a doctor's note) or extraordinary circumstances. If illness or an extraordinary circumstance will cause you to submit an assignment late, then you should discuss the matter with us 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. Note that 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. If you wish to use your "late pass" on an assignment, you must tell us via e-mail before the assignment's due date/time. Some of the assignment may involve working in teams; you may not use your late pass on a team assignment.

The final assignment is due on the Dean's Date, and we are not permitted to accept work after that date. Thus you may not submit the final assignment late.

Assignments: Collaboration

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

Programming in 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 friends are encouraged. However, when the time comes to write code that solves the problem, such discussions are no longer appropriate - the program must be your own work. If you have a question about how to use some feature of C, UNIX, etc., you can certainly ask your friends or the teaching assistants, but do not, under any circumstances, copy another person's program. Writing code for use by another or using someone else's code in any form is a violation of academic regulations. "Using someone else's code" includes using solutions or partial solutions to assignments provided by commercial web sites, instructors, preceptors, teaching assistants, friends, or students from any previous offering of this course or any other course.

You may, however, use any code from the COS 217 lectures, precepts, or course texts, providing that you explain what code you use, and cite its source in your "readme" file or in comments. For each assignment, you must also specifically describe whatever help (if any) that you received from others in your "readme" file, and write the names of any individuals with whom you collaborated. This includes help from friends, classmates, lab TAs, and COS 217 staff members.

If you have a question about what is fair and what is not, please consult a staff member. Violators will be referred to the Discipline Committee for review. Princeton's Rights, Rules, Responsibilities document 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.

You are responsible for keeping your solutions to the COS 217 programming assignments away from prying eyes. If someone else copies your program, we have no way to determine who's the owner and who's the copier; the Discipline Committee gets to decide. If you are working on a public cluster machine, be sure to delete your local source 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

Communication

You may e-mail questions/comments to the course listserv (cos217@lists.cs.princeton.edu). We will make every effort to respond promptly. We also may e-mail unsolicited information to the listserv. You should make sure that you are subscribed to the listserv. The instructions for doing so are provided in precepts.

Alternatively, you may send email to all of the course's instructors (cos217@cs.princeton.edu) or to your preceptor. In general, if your question/comment will be helpful to other students, then you should e-mail it to the listserv; if your question/comment is specific to your work, or if you must reveal portions of your work to express your question/comment adequately, then you should e-mail it to your preceptor.

Grading

Your final grade will be weighted as follows:

Assignments (7): approximately 60%
Exams (2): approximately 30%
Class participation: approximately 10%