The topics included in the schedule is neither sound (some of the listed topics may not be covered) nor complete (some unlisted topic may be included). The interactive notebooks are accessed using docker container whose instructions are here.

Lectures Date Day Theme Notebook Comments
1 29/07/19 M Admin. Intro. Paradigms. [notebook] [pdf] Recommended exercise: Set up the course jupyter notebook.
2 30/07/19 T Functional Programming [notebook] [pdf]  
3 31/07/19 W Expressions [notebook] [pdf] Chapter 2 CS3110 text book
  02/08/19 F Tutorial: Git, Docker, Jupyter    
4 05/08/19 M Functions [notebook] [pdf] Chapter 2 in CS3110 text book
5 06/08/19 T Data Types [notebook] [pdf] Chapter 3 in CS3110 text book
6 07/08/19 W Pattern Matching [notebook] [pdf] Chapter 3 in CS3110 text book
  09/08/19 F Tutorial: Git, Docker, Jupyter    
7 13/08/19 T Higher Order Programming [notebook] [pdf] Chapter 4 in CS3110 text book
8 14/08/19 W Lambda Calculus: Syntax [notebook] [pdf] TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 2
9 16/08/19 F Lambda Calculus: Semantics [notebook] [pdf] TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 2
10 19/08/19 M Lambda Calculus: Review   Assignment 1 due
11 20/08/19 T Lambda Calculus: Encodings [notebook] [pdf] TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 3
12 26/08/19 M Lambda Calculus: Encodings [notebook] [pdf] TAPL Chap. 5, Peter Selinger’s lecture notes on lambda calculus Chap. 3
13 27/08/19 T Lambda Calculus: STLC [notebook] [pdf] TAPL Chap. 9, Peter Selinger’s lecture notes on lambda calculus Chap. 6
14 28/08/19 W Lambda Calculus: STLC [notebook] [pdf] TAPL Chap. 9, Peter Selinger’s lecture notes on lambda calculus Chap. 6
  30/08/19 F Tutorial on Quiz1 portions    
15 03/09/19 T Lambda Calculus: STLC [notebook] [pdf] Assignment 2 due, TAPL Chap. 9, Peter Selinger’s lecture notes on lambda calculus Chap. 6
  04/09/19 W Quiz 1    
16 06/09/19 F Quiz 1 Review & (Side) Effects [notebook] [pdf] Chapters 8.7 to 8.16 in CS3110 Textbook, Imperative Programming, Real World OCaml
17 10/09/19 T (Side) Effects [notebook] [pdf] Chapters 8.7 to 8.16 in CS3110 Textbook, Imperative Programming, Real World OCaml
18 13/09/19 F Modular Programming [notebook] [pdf] Chapter 5 in CS3110 Textbook, Modules and Functors, Real World OCaml
19 16/09/19 M Modular Programming [notebook] [pdf] Chapter 5 in CS3110 Textbook, Modules and Functors, Real World OCaml
20 17/09/19 T Streams, Laziness & Memoization [notebook] [pdf] Chapters 8.1 to 8.4, 8.27 in CS3110 Textbook, Laziness & Memoization, Real World OCaml
21 18/09/19 W Streams, Laziness & Memoization [notebook] [pdf] Chapters 8.1 to 8.4, 8.27 in CS3110 Textbook, Laziness & Memoization, Real World OCaml
22 20/09/19 F Monads [notebook] [pdf] Chapters 8.22 to 8.26 in CS3110 Textbook, Cambridge Computer Lab: AFP: Monads
23 23/09/19 M Monads [notebook] [pdf] Chapters 8.22 to 8.26 in CS3110 Textbook, Cambridge Computer Lab: AFP: Monads
24 24/09/19 T GADTs [notebook] [pdf] UCam AFP Course: GADTs
25 25/09/19 W GADTs [notebook] [pdf] UCam AFP Course: GADTs
26 27/09/19 F GADTs [notebook] [pdf] UCam AFP Course: GADTs
  30/09/19 M No class : Convocation   Assignment 3 due
27 01/10/19 T Prolog Basics [notebook] [pdf] Chapter 11 in PLCC
28 09/10/19 W Logical Foundations [notebook] [pdf] Chapter 1, 2, 3.1 in Logic, Programming and Prolog 2ed
29 11/10/19 F Logical Foundations [notebook] [pdf] Chapter 1, 2, 3.1 in Logic, Programming and Prolog 2ed
30 14/10/19 M Solving a Logic Puzzle [notebook] [pdf] **Assignment 4 due (extended to 21/10) **
31 15/10/19 T Quiz 2 review    
  16/10/19 W Quiz 2    
32 18/10/19 F Quiz 2 solutions review & Programming with Lists    
33 21/10/19 M Programming with Lists    
34 22/10/19 T Control in Prolog    
35 23/10/19 W Control in Prolog    
36 25/10/19 F Mutable(?) data structures    
37 28/10/19 M Logic Programming   Assignment 5 due
38 29/10/19 T Logic Programming    
39 30/10/19 W Logic Programming    
40 04/11/19 M Logic Programming    
41 05/11/19 T Logic Programming    
42 06/11/19 W Logic Programming    
43 11/11/19 M Logic Programming   Assignment 6 due
  13/11/19 W Summary & End Sem Review    
  19/11/19 T End Sem