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
- Course specification/syllabus
- Discord (optional)
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.
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 |