Lectures and tutorials

Lectures take place Monday and Thursday. Monday’s lecture is immediately followed by a tutorial.

  • 10.00–12.00 Monday Lecture and Tutorial George Square 50, room G.02 (50GS G.02).
  • 10.00–10.50 Thursday Lecture Informatics Forum, room G.03 (IF G.03), save for Thursday 10 November in G.07 (IF G.07).


119 Sep (Bank Holiday)22 Sep Introduction
226 Sep Naturals29 Sep Induction
33 Oct Relations6 Oct Equality & Isomorphism
410 Oct Connectives & Negation13 Oct Quantifiers
517 Oct Decidable & Lists20 Oct Lambda
624 Oct Lambda27 Oct Properties
731 Oct Properties3 Nov DeBruijn
87 Nov More10 Nov Inference
914 Nov Untyped17 Nov Eval
1021 Nov agda2hs (guest: Orestis Melkonian)24 Nov
1128 Nov Mock Exam1 Dec Propositions as Types


Assessment for the course is as follows.

  • five courseworks, five points each, including a take-home mock exam (the “mock mock”), 25%
  • optional project, take a research paper and formalise its development, 25%
  • mock exam, online with Agda proof assistant under exam conditions, 0%
  • final exam, online with Agda proof assistant, 50%

Students are expected to get 3–5 points each (out of 5) on the courseworks. Students who undertake the coursework and mock exam typically get 50 points (out of 50) on the final exam. In order to conform with the University’s Common Marking Scheme, students may typically get only 10 points or less (out of 25) on the optional project. Attempting the optional project may not be a good use of time compared to other courses where there are easier marks to be had.


For instructions on how to set up Agda for PLFA see Getting Started.

  • Assignment 1 cw1 due 12 noon Thursday 6 October (Week 3)
  • Assignment 2 cw2 due 12 noon Thursday 20 October (Week 5)
  • Assignment 3 cw3 due 12 noon Thursday 3 November(Week 7)
  • Assignment 4 cw4 due 12 noon Thursday 17 November (Week 9)
  • Assignment 5 cw5 due 12 noon Thursday 24 November (Week 10) Use file Exam. Despite the rubric, do all three questions.

How to submit coursework

Go to the TSPL Learn course and select “Assessment” from the left hand menu. Select the “Assignment Submission” folder and then click on the link “submit your coursework here”. This will take you to the Gradescope interface.

For anyone who has sat an online exam over the last two years, Gradescope should look familiar. Gradescope programming assignments differ from exams in that it offers three options for submitting your work:

  • Drag and drop your code file(s) into Gradescope
  • Submit a GitHub repository
  • Submit a Bitbucket repository

For the last two, you need to link your account to submit from GitHub or Bitbucket if you have not already. Instructions to do so are here.

Optional project

The optional project is to take a research paper and formalise all or part of it in Agda. In the past, some students have submitted superb optional projects that contributed to ongoing research. Talk to me about what you would like to submit.

  • Optional project cw6 due 12 noon Thursday 1 December (Week 11)

Mock exam

10am-12noon Monday 28 November. An online examination with the Agda proof assistant, to let you practice for the exam and familiarise yourself with exam conditions.

Additional reading