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.