Schedule
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 | [notebook] [pdf] | |
33 | 21/10/19 | M | Programming with Lists | [notebook] [pdf] | Chapter 11 in PLCC, Chapter 3 in AoP |
34 | 22/10/19 | T | Control in Prolog | [notebook] [pdf] | Chapter 11 in PLCC, Chapter 4 in AoP |
35 | 23/10/19 | W | Control in Prolog | [notebook] [pdf] | Chapter 11 in PLCC, Chapter 4 in AoP |
36 | 25/10/19 | F | Mutable(?) data structures | [notebook] [pdf] | Chapter 11 in PLCC, Chapter 15 in AoP |
37 | 28/10/19 | M | Generate and Test | [notebook] [pdf] | Chapter 11 in PLCC, Chapter 14.1 in AoP |
38 | 29/10/19 | T | Cuts and Negation | [notebook] [pdf] | Chapter 11 in PLCC, Chapter 11 in AoP |
39 | 30/10/19 | W | Countdown, Type Inference and Program Synthesis | [notebook] [pdf] | Assignment 5 due |
40 | 04/11/19 | M | Graph Search | [notebook] [pdf] | Chapter 14.2 in AoP |
41 | 05/11/19 | T | Database Programming | [notebook] [pdf] | |
42 | 06/11/19 | W | Sudoku & Constraint Logic Programming | [notebook] [pdf] | Prolog WikiBook on CLP, SWI Prolog docs on CLP |
43 | 11/11/19 | M | Sudoku & Constraint Logic Programming | Assignment 6 due | |
13/11/19 | W | Summary & End Sem Review | |||
19/11/19 | T | End Sem |