Princeton University
Computer Science Department

Computer Science 217
Introduction to Programming Systems

Jaswinder Pal Singh

Fall 2013


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 your precept, that is, the precept for which you are registered in Princeton's SCORE system.

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 if a conflict with your precept arises. (Indeed you should do so.) In that case, as soon as 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.


Electronic Communication

These are the course's policies concerning electronic communication:

In the context of electronic communication, the phrase "any of your assignment solution" includes:


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 the course staff suspects that you have violated course policies concerning assignment conduct, then the staff will refer the case to the Committee on Discipline. If the Committee determines that you indeed did violate a course policy, then the standard penalty is a 0 grade on the pertinent assignment(s). If the Committee determines that the violation constitutes plagiarism, then the standard penalty is failure of the course. The Committee may and often does impose additional penalties.

If you have any questions about these matters, please consult a course staff member.

Concerning receiving help:

In short: To help you compose an assignment solution you may use only the authorized sources of information that are listed below, may consult with other people only via the course's Piazza account or via interactions that might legitimately appear on the course's Piazza account, and must declare your sources in your readme file for the assignment.

To help you compose your assignment solutions you may use:

To help you compose your assignment solutions you may use only the sources of information listed above. For example, you may not use:

There are three exceptions to those policies:

Copying someone else's code is an egregious violation of course policies. Copying and transforming someone else's code (by rearranging independent code, renaming variables, rewording comments, etc.) is just as egregious. Some inexperienced programmers have the misconception that detecting such violations is difficult; actually it is quite easy. Not only do such violations quickly identify themselves during the grading process, but also we can (and do) use software packages, such as Alex Aiken's renowned MOSS software, for automated help.

There is one exception to that code-copying-and-transforming policy. You may adapt code from the course materials provided that you explain what code you use, and cite its source in your readme file.

For each assignment you must declare, in your readme file, the authorized sources of information that you used to compose your assignment solution.

For each assignment you also must declare in your readme file the unauthorized sources of information that you used to compose your assignment solution. Using an unauthorized source will result in a 0 grade for the assignment. But it is to your advantage to report your use of unauthorized sources and receive a 0 grade for the assignment rather than not report your use of unauthorized sources and thereby risk an appearance before the Committee on Discipline.

Concerning providing help:

In short: You may help other students with assignments only via the course's Piazza account or interactions that might legitimately appear on the course's Piazza account, and you may not share your assignment solutions with anyone, ever, in any form.

You may not provide assignment-related help to another student in any form (verbally, computer files, e-mail messages, pencil/pen on paper, marker on white board, chalk on black board, etc.) at any level of detail (code, pseudo-code, flow charts, outlines, diagrams, natural language prose, etc.) at any time (before or while the student works on the assignment solution). That policy holds even after the due date/time of the assignment, and even after the course is finished. That is, you may not provide assignment-related help to students who take the course in future semesters.

There are three exceptions to those policies:

Sharing your assignment-related code with another student is an especially egregious violation of course policies. Sharing your code in digital form is even more egregious. Do not give hard copy of your code to anyone. Do not e-mail your code to anyone. Do not make your code available to anyone via the web.

Store all of your assignment-related code in the Princeton central file system in a private directory. You can create a private directory in the Princeton central file system by issuing commands similar to these on the nobel cluster:

$ mkdir cos217
$ chmod 700 cos217

If you also store your assignment-related code on your personal computer, then make sure your personal computer is password protected, and that you enable the password protection whenever you leave your computer unattended. If you store your assignment-related code on a personal external hard drive, then make sure your personal hard drive is password protected or locked in a secure place. If you are working on a public cluster computer, then do not leave the computer unattended, and delete your local files and logout before leaving.

Remember that you are responsible for keeping your assignment-related code away from prying eyes. If someone else copies your code, we have no way of knowing the circumstances. In that case we will refer the matter to the Committee on Discipline, and the Committee will investigate.

Concerning retaking COS 217:

If you took COS 217 (or part of it) during a previous semester, then you may use your work on assignments from that previous semester. However you may not use:


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.


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 a team with another student from your precept. You may use your late pass on a team assignment if and only if your teammate uses his/her late pass on that assignment. (The implication is that you may not use your late pass on a team assignment if your teammate already has used his/her late pass.) If you wish to use your late pass on a team assignment, you and your teammate must tell your preceptor via e-mail before the assignment's due date/time.

University policy requires that we not accept work on any assignment after 5:00PM on the Dean's Date without permission from the appropriate Dean.


Grading

Your final grade will be weighted as follows:

Component Approximate Weight
Assignments 50%
(the final assignment counts double)
Midterm Exam 15%
Final Exam 25%
Class Participation 10%