15-150: Functional Programming, Spring 2025


Schedule of Lectures

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