Where and When

  • Lectures: Mondays and Wednesday 10am. Be there.
  • On-line Q&A: Ed
  • Precepts: attendance mandatory in the section that you're registered for, Thursday evening or Friday morning.

Course Staff

Name Position Section Office Hours
Andrew Appel Professor Lecture Tuesday 2:30-4:00pm, CS 209
Shaowei Zhu Preceptor P01 Monday 2:00-4:00pm, CS 215
Emma Farkash Preceptor P02,P03 Friday 12:30-2:30pm, Friend 010
Theresa Lim Course Assistant Sunday 1:00-3:00pm, CS 105
Dan Friedman Course Assistant Monday 7:30-9:30pm, CS 105

If you cannot make the course staff office hours, e-mail your preceptor (or one of the professors) to set up an appointment.


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.

All work must be turned in by Dean's Date (December 15). If your last assignment is incomplete on Dean's date, submit it anyway.

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.

Collaboration policy and Academic Integrity. By default, 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.


There will be a midterm exam near the middle of the semester. There will be a final exam during the exam period. Grades will be determined 30% by the two exams, 2% by precept attendance, and 68% by seven assignments. The exams are evenly weighted; but the longer and more challenging assignments will be worth correspondingly more than the earlier assignments, as detailed on the Assignments page.