15-150: Functional Programming, Fall 2021


Schedule of Lectures

Number  Date                  Topics Covered Lecture Slides Lecture Notes
1 31 August Welcome & Intro slides-lec01 notes-lec0102
2 02 September Types, Expressions, Delcarations, Patterns slides-lec02
3 07 September Functions and specifications slides-lec03 notes-lec0304
4 09 September Proving Correctness slides-lec04
5 14 September Analyzing efficiency: work and span slides-lec05 notes-lec05
6 16 September Sorting lists of integers slides-lec06 notes-lec06
7 21 September Datatypes: options and trees slides-lec07 notes-lec0708
8 23 September Sorting trees of integers slides-lec08
9 28 September Higher-order functions on lists slides-lec09 notes-lec09
10 30 September Type inference, polymorphism slides-lec10 notes-lec10
11 05 October Higher-order polymorphic sorting slides-lec11 notes-lec11
12 07 October Case study: making change slides-lec12 notes-lec12
13 19 October Continuations and backtracking slides-lec13 notes-lec13
14 21 October Exceptions slides-lec14 notes-lec14
15 26 October Modular programming (signatures, structures) slides-lec15 notes-lec15
16 28 October Modular programming (information hiding, functors) slides-lec16 notes-lec16
17 02 November An abstract type of sequences; cost semantics slides-lec17 notes-lec17
18 04 November Case study: gravitation slides-lec18 notes-lec18
19 09 November Games: minimax algorithm slides-lec19 notes-lec19
20 11 November Games: bounded minimax, alpha-beta pruning slides-lec20 notes-lec20
21 18 November Lazy Programming slides-lec21 notes-lec21
22 23 November Lazy Programming slides-lec22 notes-lec22
23 30 November Imperative Programming slides-lec23 notes-lec23
24 02 December Semester review


The "Lecture Slides" field will usually be blank until it is updated after the given day's lectures (generally by evening). Additional resources (code, worksheets, etc.) can be found on Canvas.

Disclaimer: All topics and dates are subject to change.

last modified 14:51, 02 Dec 2021