Lectures

Topic Date(s) References/Additional Reading
Introduction 1/8 Set up the course jupyter notebooks
Why Functional Programming? 2/8
Expressions in OCaml 2/8,3/8 Chapter 2.3 in Cornell CS3110 textbook
Functions in OCaml 3/8,8/8 Chapter 2.4 in Cornell CS3110 textbook
Datatypes in OCaml 8/8,9/8 Chapter 3 in Cornell CS3110 textbook
Pattern Matching in OCaml 10/8,16/8 Chapter 3.1 in Cornell 3110 textbook
Higher-order programming in OCaml 17/8 Chapter 4 in Cornell 3110 textbook
Lambda Calculus: Syntax 22/8,23/8 Peter Selinger’s lecture notes on lambda calculus Chapter 2, Types and Programming Languages Chapter 5.
Lambda Calculus: Semantics 30/8,31/8,5/9 Peter Selinger’s lecture notes on lambda calculus Chapter 2, Types and Programming Languages Chapter 5.
Lambda Calculus: Encodings 5/9,6/9,7/9,12/9 Peter Selinger’s lecture notes on lambda calculus Chapter 6, Types and Programming Languages Chapter 5.
Lambda Calculus: STLC 12/9, 13/9 Peter Selinger’s lecture notes on lambda calculus Chapter 6
Side effects in OCaml 13/9, 14/9 Chapter 7 in Cornell CS3110 textbook, Chapter on Imperative programming in Real World OCaml
Modular Programming in OCaml 15/9, 20/9 Chapter 5 in Cornell CS3110 textbook, Chapter on Modules, Chapter on Functors in Real World Ocaml.
Streams, Laziness and Memoization in OCaml 20/9,21/9,26/9 Chapter 8.4,8.5 in Cornell CS3110 textbook, Laziness & Memoization in Real World Ocaml.
Prolog Basics 27/9,3/10 Chapter 11 in Programming Languages: Concepts and Constructs by Ravi Sethi.
Prolog: Logical Foundations 3/10,4/10,10/10 Chapter 1,2,3.1 in Logic, Programming and Prolog.
Lists in Prolog 10/10,11/10,12/10 Chapter 11 in PLCC, Chapter 3 in The Art of Prolog
Control in Prolog 12/10, 16/10, 17/10 Chapter 11 in PLCC, Chapter 4 in The Art of Prolog
Generate and Test 18/10, 19/10 Chapter 11 in PLCC, Chapter 14.1 in The Art of Prolog
Solving a Logic Puzzle 19/10, 25/10
Cuts and Negation 25/10,26/10,31/10 Chapter 11 in PLCC, Chapter 11 in The Art of Prolog
Type Inference and Program Synthesis using Prolog 31/10, 1/11
Mutable Data Structures and Difference Lists in Prolog 2/11, 7/11 Chapter 15 in The Art of Prolog
Next