Course Logistics

Class Time and location

We will meet 1:30-2:45PM on Mondays and Wednesdays in Krieger 170. You are expected to attend all lectures in-person, but if there are reasons you cannot attend such as being sick, travelling, etc the lecture recordings should be available on Panopto.

Q&A: Courselore

We are using Courselore for course announcements and Q&A. We will be emailing a special sign-up link for you to get on there; the link is also accessible from the course Canvas page if you added late.

Panopto Lecture Videos

Use this link for access to the videos. You must authenticate to see them.

The Book

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.html. 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

Gradescope will be used for assignment submission and grade posting. See Courselore for the entry code (here once you have made your Courselore account.)

Assignments

All assignments are linked from the dateline. There will be three kinds of assignments:

  1. Small programming assignments in OCaml so you can learn the language, at the start of the course.
  2. The implementation of a series of simple interpreters and translators in OCaml.
  3. 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.

Please make sure to consult the course Academic Integrity Policy on what is legitimate interaction for homeworks, it is spelled out in detail there.

Flexible Homework Deadlines

Each homework has a deadline date listed. You will start the term with 12 “flex days”, which you can use to push back the due date by one day for each flex day you use. For each individual assigment you can use up to three of your 12 flex days quota, each one allowing you to submit the assignment one day later. The quantum of time here is a day, so on each homework you can use either 0, 1, 2, or 3 flex days. Flex days are designed to help you plan around assignments or exams in other courses, and/or if you have a cold or flu which sets you back a bit; if you have an extended excused absence please contact the instructor and we can work something out.

Office Hours

Office hours and locations will be pinned on Courselore.

In-Class Exercises and Exams

There will be periodic written in-class exercises which will be graded pass/fail. They will not be announced in advance and cannot be made up, but you will be allowed to drop one score.

There will be an in-class midterm before spring break and a final examination during the normal final exam period slot.

Grading

The final will count around 50% of the grade, the midterm 25%, the in-class exercises 5%, and the homeworks 20%. Each HW will be weighted somewhat differently, based on the time commitment of the assignment. Note that these weights are only approximations at this point and may need to change.