Princeton University

Computer Science 240

Fall 2024 
You are required to attend the lectures. Your lecture attendance and participation are important to your success in the course.
Some of the material covered in lectures may not be covered in the textbooks or precepts. Some exam questions may reward your lecture attendance.
You are required to attend the precepts. We also encourage you to participate actively in the precepts by listening attentively, asking helpful questions occasionally, answering questions occasionally, and so forth. Your precept attendance and participation are important to your success in the course and may also affect your grade (see also the Grading section of the Policies). They also are important to the success of the course as a whole.
Some of the material covered in precepts may not be covered in the textbooks or lectures.
You should attend your precept, that is, the precept for which you are registered in Princeton's TigerHub system.
Generally it is not acceptable to attend another precept instead of 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 email to your Preceptor and the other Preceptor. Note that this mechanism is intended to address occasional conflicts; it does not provide license to attend precepts other than your precept on a regular basis.
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 email to your Preceptor and the other Preceptor the day before the precept, asking permission to attend. The Preceptors then will make the decision and let you know.
Course announcements are distributed through the course's Piazza account (Signup link).
These are the course's policies concerning electronic communication:
If you have a question about course policies, don't post it on Piazza. Instead email (or visit the office hours of) your Preceptor or the Instructor of Record of the course.
If you have a question (not related to course policies) that you can express without revealing any parts of your assignment (also known as problem set) solution, then you may post it to the course's Piazza account. One of the course's instructors will respond as soon as possible. Other students also are welcome to respond if and only if they can do so without revealing any of their assignment solutions.
If you have a question that you cannot express without revealing any part of your assignment solution, then you may not post it to Piazza. Instead you may email it to your Preceptor. See the course's General Information web page for the email address of your Preceptor. You may not email questions directly to a Preceptor other than your own.
In the context of electronic communication, the phrase "any part of your assignment solution" includes:
The products that you create for the assignment, that is, your .tex code files (including parts of it), pdf files containing parts or the whole solution of a problem included in an assignment, your notes taken for the purpose of completing the assignment, etc. You may not show any of the products that you create for the assignment, modified versions of them, or any parts of them, openly (for instance on a post where other students have access to) on Piazza.
Descriptions of those products in the form of natural language prose, etc. You may not describe the solutions that you write for the assignment, or any parts of them, openly (for instance on a post where other students have access to) on Piazza.
Decisions that you make in the process of creating the solutions to assignments, that is, your decisions about how to express your the logic of your solution or a part of it. You may not describe such decisions or suggest this kind of decisions openly (for instance on a post where other students have access to) on Piazza.
Unless an assignment is marked as a nocollaboration assignment in which case you may only discuss the problems in that assignment with course staff, you may collaborate in groups of at most three students of the course to solve assignment problems. In the case of assignments that allow collaboration, the same group of (at most three) students of the course should collaborate in all problems of that assignment. After discussing with your collaborators, you must type your own solutions. You must write all the names of your collaborators at the start of your solutions for that assignment. If you did not collaborate with anyone, you must clearly state it at the start of your solutions for that assignment, writing for example ''Collaborators: None'' at the start of your solutions for that assignment. You are not allowed to discuss your solutions outside of your group. However, you may discuss your solutions with the Professor of the course, any of the Preceptors of the course and the Lab TAs; see the course's General Information web page for information on the teaching staff of the course. Any notes taken during your discussions should be discarded after the discussions are over and before you write your solution. After you finished your discussions, you should write your own solutions in isolation. Being together (even in an online setting and with your group members or other students of the course) and writing/typing solutions is strictly prohibited.
You may consult the course reading material (distributed only in this semester's course Piazza account) to solve assignment problems. Furthermore you can consult external sources to learn the course material and to solve assignments, with the understanding that:
If you used any external sources to solve assignment problems (e.g. other textbooks, wikipedia, material from other courses) you must clearly mention them at the beginning of your solution.
Some assignments restrict available sources; you may use only the sources listed in those assignments.
In all cases, you may not consult material posted in previous semesters' course Piazza accounts.
Furthermore, you may not consult material that reveal parts of the assignment solutions beyond the ones the course's teaching staff may post on Piazza.
You may not use AI composition software (such as ChatGPT) for the purpose of solving assignments. You are permitted to use though the basic functionality of a calculator, namely you may only use the basic math functions on the calculator (i.e., plus, times, log, sin, exp, etc.); you may not use any programming functionality.
Sharing your assignment solutions with another student is an especially egregious violation of course policies. Do not give hard copy of your work to anyone. Do not email your work to anyone. Do not make your work available to anyone via the web.
There will be several problems in each assignment. You must type your solutions to the problems of the assignment on one PDF file. You may use the provided LaTeX templates to type in your solutions. Write your name, assignment number, and names of your collaborators at the start of the PDF file containing your solutions for the assignment.
If you took COS 240 (or part of it) during a previous semester, then you may use your work on assignments from that previous semester. However:
You may not look at the feedback on your old graded reports.
You may not look at any course material (solutions to assignments, precept material, etc) you may have had access to while enrolled in a previous semester.
You may not use your work on an assignment from a previous semester if you violated course policies or University policies on that assignment, as determined by the course's instructors or the Committee on Discipline.
Conduct during inclass exams is covered by the University Honor Code. If we suspect a student of inappropriate conduct during an inclass exam, we will refer the case to the Honor Committee. If the Honor Committee finds the student guilty of inappropriate conduct, the standard penalty is automatic failure of the COS 240 course. The Honor Committee may impose additional penalties.
You must submit all your solutions to an assignment electronically as one PDF file using the link to the TigerFile service posted in the relevant Piazza thread.
You may use up to 4 late days throughout the semester, but not more than 2 days on a given assignment. Using one late day on an assignment extends the due date/time of that assignment by 24 hours. Using two late days on an assignment extends the due date/time of that assignment by 48 hours. On each instance, you may only use an integer number of late days. Your late days' usage up to and including the current assignment is posted on Canvas after you submit your solutions to the problems of that assignment.
Outside of this policy, no late submissions will be accepted unless there are extraordinary circumstances involved. We will grant extensions only in the case of illness (with a doctor's note) or other extraordinary circumstances. If illness or other extraordinary circumstances will cause you to submit an assignment late, then you should discuss the matter with your preceptor as soon as possible (before that assignment's deadline has passed). 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.
If you wish to remove an assignment file you submitted, you can only do so before 48 hours have passed after this assignment's deadline. This time period you have to remove an assignment file you submitted is not affected by any late days you may have used on this assignment.
Your final grade for the course will be calculated as the maximum of: the grading scheme in Table A (50% assignments and 50% Exams) and the grading scheme in Table B (50% assignments and 45% Exams and 5% Attendance).
Table A Component Weight Assignments (see below for calculation) 50% Exams (Midterm and Final, see below for calculation) 50%
Table B Component Weight Assignments (see below for calculation) 50% Exams (Midterm and Final, see below for calculation) 45% Participation (see below for calculation) 5%
The Exams Grade will be calculated as follows. It will be the maximum of: (60% final exam + 40% midterm exam) and (80% final exam + 20% midterm exam).
There will be 5 Assignments (Problem Sets). Each Assignment will consist of multiple problems. The total number of problems across all assignments will be approximately 30. One Assignment will be a nocollaboration assignment (the first one). The Assignments' score will be calculated as follows: (0.25 * Your Lowest Assignment Score + Sum of your Remaining Assignment Scores) / 4.25.
Your Participation score will be the maximum possible if you attend at least 18 Lectures and 7 Precepts. Your Participation score will be 0 if you attend less than 13 Lectures or less than 6 Precepts. Note that if you attend on 5 or more occasions Precepts that you are not enrolled at your Participation score will be 0, since this implies that you attended Precepts other than your own on a regular basis contrary to the rules in the Precepts section of the Policies.