Schedule
Lectures | Topic | Dates | Comments |
---|---|---|---|
1 | Why PL? | 29/07 | |
2 | Why FP? | 30/07 | |
3 | Expressions | 30/07, 01/08 | WAT |
4 | Functions | ||
5 | Datatypes | ||
6 | Pattern Matching | ||
7 | Higher-order programming | ||
8 | Lambda Calculus: Syntax | ||
9 | Lambda Calculus: Semantics | ||
10 | Lambda Calculus: Encodings | ||
11 | Lambda Calculus: STLC | ||
12 | (Side) Effects | ||
13 | Modular Programming | ||
14 | Streams, Laziness and Memoization | ||
15 | Monads | ||
16 | GADTs | ||
17 | Prolog Basics | ||
18 | Logical Foundations | ||
19 | Solving a Logic Puzzle | ||
20 | Programming with Lists | ||
21 | Control in Prolog | ||
22 | Mutable(?) data structures | ||
23 | Generate and Test | ||
24 | Cuts and Negation | ||
25 | Countdown, Type Inference and Program Synthesis | ||
26 | Graph Search | ||
27 | Database Programming | ||
28 | Sudoku & Constraint Logic Programming |
The lectures are available as interactive notebooks. They are best accessed using docker container whose instructions are here.