Functional Programming (ITI0212 - Spring 2025)

Lectures: Wednesday 12:00-13:30, ICO-217 (IT College Building)

Labs: Thursday 14:00 - 15:30, ICT-403 and Friday 14:00 - 15:30, ICO-410

Instructors: Matt Earnshaw, Kat Zhuchko

Homework assignments

To submit homeworks, commit your solutions to a private repository named iti0212-2025 on gitlab.cs.ttu.ee.

  • Homework 1 due 12th March
  • Homework 2 to be announced 26th March

Course project

To be announced around the beginning of April, due end of May.

Final exam

The final exam for ITI0212 will take the form of an individual live-coding demonstration. To be held in last week of May to first week of June. More details will be available nearer the time.

Resources

Lectures and Lab Sheets

(The exact topics and order are still subject to change.)

Week Lecture Date Topic Lab Video
01 05/02/2025 Course Introduction lab01 none
02 12/02/2025 Inductive Types and Recursive Functions lab02 mp4
03 19/02/2025 Parameterised Types and Polymorphic Functions lab03 mp4
04 26/02/2025 Function Literals and Higher-Order Functions lab04 mp4
05 05/03/2025 Type Classes I lab05 mp4
06 12/03/2025 Type Classes II: Functors, Applicatives, Monads lab06 mp4
07 19/03/2025 More Monads lab07 mp4
08 26/03/2025 Dependent types  
09 02/04/2025 Propositions as types I  
10 09/04/2025 Correctness by construction I  
11 16/04/2025 Propositions as types II (first-order logic)  
12 23/04/2025 Inductive equality  
13 30/04/2025 Correctness by construction II  
14 07/05/2025 Correctness by theorem proving I  
15 14/05/2025 Correctness by theorem proving II  
16 21/05/2025 Review