Lectures Topic Dates Comments
1 Why PL? 29/07  
2 Why FP? 30/07  
3 Expressions 30/07, 01/08 06/08 WAT, CS3110 Expressions
4 Functions 06/08, 07/08, 08/08, 12/08 CS3110 Functions
5 Datatypes 12/08, 13/08, 14/08 CS3110 Datatypes and pattern matching
6 Pattern Matching 14/08, 19/08, 20/08 CS3110 Datatypes and pattern matching
7 Higher-order programming 20/08, 21/08 CS3110 Higher-order programming
8 Lambda Calculus: Syntax 21/08, 22/08, 26/08 TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 2
9 Lambda Calculus: Semantics 29/08, 02/09, 04/09 TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 2
10 Lambda Calculus: Encodings 16/09, 17/09, 18/09 TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 3
11 Lambda Calculus: STLC 19/09, 23/09, 24/09, 25/09 TAPL Chap. 9, Peter Selinger’s lecture notes on lambda calculus Chap. 6
12 (Side) Effects 30/09, 01/10, 03/10 CS3110 Mutability
13 Modular Programming 03/10, 07/10, 08/10, 10/10 CS3110 Modular Programming
14 Prolog Basics 10/10, 14/10(TA) Chapter 11 in PLCC
15 Logical Foundations 14/10(TA), 15/10(TA) Chapter 1, 2, 3.1 in Logic, Programming and Prolog 2ed
16 Solving a Logic Puzzle 15/10(TA)  
17 Programming with Lists 16/10(TA), 17/10(TA) Chapter 11 in PLCC, Chapter 3 in AoP
18 Control in Prolog 17/10(TA), 21/10, 22/10 Chapter 11 in PLCC, Chapter 4 in AoP
19 Mutable(?) data structures 22/10, 23/10, 24/10 Chapter 11 in PLCC, Chapter 15 in AoP
20 Generate and Test 24/10, 28/10 Chapter 11 in PLCC, Chapter 14.1 in AoP
21 Cuts and Negation 28/10, 29/10 Chapter 11 in PLCC, Chapter 11 in AoP
22 Countdown, Type Inference and Program Synthesis 30/10, 31/10, 04/11  


Total lecture hours till (31/10) is (43).

The lectures are available as interactive notebooks. They are best accessed using docker container whose instructions are here.

Pop Quizzes

Quiz Date
1 08/08
2 21/08
3 19/09
4 07/10
5 28/10
6 04/11