15-150: Functional Programming, Summer 2022


Schedule of Lectures

Number  Date        Topics Covered Notes and Readings
01 17 May Introduction, Equivalence, Evaluation, Typing, Binding, Scope   lecture 01, code 01
02 19 May Functions   lecture 02, code 02
03 24 May Recursion and Induction   lecture 03, screen contents, code 03
04 26 May Lists, Tail Recursion, Structural Induction   lecture 04, code 04
27 May QUIZ #1
05 31 May Datatypes, Trees and Structural Induction   lecture 05, code 05
06   2 Jun Asymptotic Analysis   lecture 06, code 06
07   7 Jun List Sorting   lecture 07, code 07
08   9 Jun Tree Sorting   lecture 08, code 08
10 Jun QUIZ #2   practice quiz, practice solutions
09 14 Jun Polymorphism and Parameterized Datatypes   lecture 09, code 09
10 16 Jun Higher-Order Functions   lecture 10, more folding, code 10
?? 17 Jun Bonus Lecture - Reading a Paper   extra credit assignment
11 21 Jun Combinators, Staging   code 11, lecture 11
12 23 Jun Continuations   code 12, lecture 12, more lecture 12
24 Jun QUIZ #3   practice quiz, practice solutions
28 Jun SUMMER BREAK
30 Jun SUMMER BREAK
13   5 Jul Exceptions   code 13, lecture 13, backtracking
14   7 Jul Modular programming I: Signatures and Structures
??   8 Jul Bonus Lecture
15 12 Jul Modular programming II: Functors
16 14 Jul Modular programming III: Invariants of Red/Black Trees
15 Jul QUIZ #4
17 19 Jul Parallelism, Cost Semantics, Sequences
18 21 Jul Games
19 26 Jul Games II
20 28 Jul Lazy programming
29 Jul QUIZ #5
21   2 Aug Imperative programming
22   4 Aug Introduction to Context-Free Grammars and Parsing
23   9 Aug Introduction to Computability
24 11 Aug Theory and Applications
12 Aug FINAL EXAM       TIME TBD


The "Notes and Readings" field will usually be blank until it is updated after the given day's lectures (generally by evening).

Disclaimer: All topics and dates are subject to change.

last modified 13:04, 05 Jul 2022