For the assignments, I would recommend cloning the course website, and find the assignments under assignments/pset*.

All assignments should be submitted through the course moodle.

Problem Set Released Due Date Topic
1 14/01/2020 21/01/2020 Functional Programming in Coq
2 21/01/2020 28/01/2020 Logic in Coq
3 28/01/2020 04/02/2020 Induction in Coq
4 04/02/2020 11/02/2020 (a) Program Syntax (b) Lists
5 09/02/2020 18/02/2020 (a) Higher order functions (b) Binary Search Trees
6 18/02/2020 03/03/2020 Transition Systems: Peterson’s Mutex Algorithm
7 05/03/2020 12/03/2020 Operational Semantics: Non-determinism
8 16/03/2020 07/04/2020 Type safety of subtyping
9 07/04/2020 15/04/2020 Hoare Logic with I/O
10 14/04/2020 24/04/2020 Verifying Functional Programs with F*
11 27/04/2020 04/05/2020 Effects in F*


Assignment late penalties

We are flexible about submitting assignments late. Unless otherwise specified, assignments may be turned in late with the following penalties applied to the score received:

  • 1 day late: −5%
  • 2 days late: −15%
  • 3 days late: −30%
  • 4 days late: −50%
  • > 4 days late: we will not grade it.

I plan to discuss the assignment solution in class in the week following the assignment due date. Hence, submissions submitted later than 4 days after the deadline will not be accepted.

Academic Integrity

You’re studying an advanced course; you’re expected and encouraged to discuss your work with others. That said, everything you write for this course (code, written assignments, quizzes, exams and everything else) must be your own original work.

Properly attribute any work that you use. It is part of your job as a scholar to understand what counts as plagiarism, and make sure you avoid it.