We will meet 1:30-2:45PM on Mondays and Wednesdays in Shaffer 303.
The book for the course is the on-line Book, which directly complements the lectures. The course will cover most of the book, but leaving out Chapter 8. The book doesn't contain an introduction to OCaml; we will be doing running examples in class as the lecture, from file lecture.ml. See the OCaml page for material on learning OCaml. Some of the later lecture topics are also not in the book lecture notes for those topics are found on the dateline.
Gradescope will be used for assignment submission and grade posting. See Piazza for the entry code.
We will be using Piazza for online discussions. You will need to register for The PL Piazza Page so you can receive course announcements and discuss the material with other students.
All assignments are linked from the dateline. There will be three kinds of assignments:
- Small programming assignments in OCaml so you can learn the language, at the start of the course.
- The implementation of a series of simple interpreters and translators in OCaml.
- Written assignments covering topics in the mathematical theory of programming languages.
The collaboration policy for assignments is you are strongly encouraged to form teams of up to four people to work together on solving the assignments, but everyone must submit their own writeup of the answers (no emailing solutions to each other). Those of you who understand the material are encouraged to engage in peer teaching to help other students on your team or other teams.
We have several Collab Lab slots each week when your group can meet together and work, and have us around to get feedback or help from. The collab lab is described in more detail below.
Please make sure to consult the course Academic Integrity Policy on what is legitimate interaction for homeworks, it is spelled out in detail there.
The Collab Lab
The Collab lab is a chance to work on the homework while consulting both with fellow students and TA/Profs. A TA/CA/Prof will always be around in collab lab hours and can work with groups or individuals on problems. We can also give impromptu lectures or reviews of any concepts a group of people are stuck on.
Collab Lab location, hours and other contact information can be found on the Contact Information page.
There will be an in-class final examination during the normal final exam slot.
GradingThe final will count around 40% of the grade and the homeworks the rest. The HWs will be weighed somewhat differently based on the length/difficulty of the assignment.