Power
Where and When
- Lectures: Mondays and Wednesday 10:40-11:30. Be there.
- Precept P01: Wed 12:15-1:05.
- Precept P03: Thurs 10:40-11:30.
- On-line Q&A: Ed
- Precepts: attendance mandatory in the section that you are registered for.
Course Staff
Name | Position | Section | Office | Hours | |
---|---|---|---|---|---|
David Walker | Professor | Lecture | dpw@princeton.edu | CS 211 | Mon 11:30-12:30pm or by email |
Theresa Lim | Preceptor | P01,P03 | tal5@princeton.edu | Friend 010 | Thurs 12:30-3:30 |
If you cannot make the course staff office hours, e-mail your preceptor (or one of the professors) to set up an appointment.
Assignments
There will be seven assignments throughout the semester. The first three are due in consecutive weeks to get you up to speed with OCaml, while the last four are spread across the rest of the semester. The last assignment will be due near the end of reading period.
Lateness policy. Programming assignments are due at 11:59pm on the date specified. Late assignments are assessed a 20% penalty per day or partial day: 0-2 hours late (grace period — no penalty), 2-24 hours late (20%), 24-48 hours late (40%), and so forth.
Some programming assignments have an automatically graded part (which test cases did you pass?) and a human graded part. Whenever you submit an assignment (by git push) you'll get your auto-grade report, even before the assignment deadline; and you can resubmit (by git push) as often as you like, to try to improve your score (even after the deadline, but lateness penalties apply). But we'll grade the human-graded part only once, at any time of our choosing after the deadline. Auto-grade reports and human-grade reports will be comments on your commit, in github.
Your penalties for the first 4 late days during the course, including medical or personal emergencies, are automatically waived. At the end of the semester we will calculate which 4 of those days for you, to maximize your score.
No additional lateness penalties will be waived except if there is a medical or personal emergency lasting more than 4 days, as assessed by the residential college deans. If your medical or personal emergency is less than 4 days, no need to get a note from your dean; see the policy above.
You may not use late days on the final assignment. Hand in any progress you have made on that assignment when it is due, even if it is incomplete.
AI policy.
You may use AI/LLMs/ChatGPT to help with your assignments.
You should report all uses of LLMs --- include the prompts you use in your readme.
Collaboration policy and Academic Integrity. Aside from the above AI policy, we will be using the COS 126 Collaboration Policy. You must read this policy before beginning your first assignment. If you have any questions or doubts about the policy, please ask. There is never any harm in asking for clarification of the collaboration policy. However, the penalties for plagiarism or other violations of the policy are very severe.
The COS 126 Collaboration policy refers to the "work" that you produce for the course. In COS 126, that work includes code, comments, README files, etc. In COS 326, your work includes all those things as well as proofs of program properties. You should treat your proofs in exactly the same way as you treat your code. For example, you shouldn't show your proofs to anyone or allow them to be copied, etc.
In COS 326, you may discuss problems with friends as long as you do not share your code or proofs. In some of the assignments, we hand out some code to get you started. You can look over the (unchanged) code that we hand out with a friend in order to try to understand it. You can also discuss general strategies for solving the problems contained in an assignment, but those discussions shouldn't involve writing code together. Once you write or change a line of code, you can no longer share that piece of code with a friend. (You could re-download a fresh, unchanged copy from the course web site for a discussion, if you wanted to.)
If, for some assignment, we wish to deviate from the policies listed above, we will say so explicitly on that assignment. However, you must assume that by default there will be no deviation.
Evaluation
There will be 2 tests during the semester. Grades will be determined as follows.
- In-class test 1: 20%
- In-class test 2: 20%
- In-semester assignments: 30%
- Final project proposal: 5%
- Final project report (including video): 20%
- Participation: 5%