15-150: Functional Programming, Spring 2026


Schedule of Lectures

Number  Date        Topics Covered Notes and Readings
01 13 Jan Introduction, Equivalence, Evaluation, Typing, Binding, Scope   lecture 01
02 15 Jan Functions
03 20 Jan Recursion and Induction
04 22 Jan Lists, Tail Recursion, Structural Induction
05 27 Jan Datatypes, Trees and Structural Induction
06 29 Jan Asymptotic Analysis
07   3 Feb Sequential Sorting
08   5 Feb Parallel Sorting
09 10 Feb Polymorphism and Parameterized Datatypes
12 Feb MIDTERM EXAM #1
10 17 Feb Higher-Order Functions
11 19 Feb Combinators, Staging
12 24 Feb Continuations
13 26 Feb Exceptions
  3 Mar SPRING BREAK
  5 Mar SPRING BREAK
14 10 Mar Regular Expressions
15 12 Mar Regular Expressions (cont)
16 17 Mar Modular programming I: Signatures and Structures
17 19 Mar Modular programming II: Functors
18 24 Mar Modular programming III: Invariants of Red/Black Trees
26 Mar MIDTERM EXAM #2
19 31 Mar Parallelism, Cost Semantics, Sequences
20   2 Apr Lazy programming
21   7 Apr Imperative programming
  9 Apr SPRING CARNIVAL
22 14 Apr Introduction to Context-Free Grammars and Parsing
23 16 Apr Introduction to Computability
24 21 Apr Introduction to Games
25 23 Apr Review


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

Regarding Slides for Lecture 1 (12:30pm):

Many of the 12:30pm lectures will be slide lectures, but some will be blackboard lectures.
For slide lectures, a preliminary version of the slides may be found shortly before lecture here.
A final version, possibly different from the preliminary version, will appear later within the "Notes and Readings" field for the given day.

Regarding Slides for Lecture 2 (3:30pm):

Slides for the 3:30pm lecture may be found here.
(Generally there will be a preliminary version before lecture, perhaps changing to a final version later.)

Disclaimer: All topics and dates are subject to change.

last modified 18:03, 13 Jan 2026