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
6 16 September Sorting lists of integers
7 21 September Datatypes: options and trees
8 23 September Sorting trees of integers
9 28 September Type inference, polymorphism
10 30 September Higher-order functions on lists
11 05 October Higher-order polymorphic sorting
12 07 October Case study: making change
13 14 October Continuations and backtracking
14 21 October Exceptions
15 26 October Modular programming (signatures, structures)
16 28 October Modular programming (information hiding, functors)
17 02 November An abstract type of sequences; cost semantics
18 04 November Case study: gravitation
19 09 November Games: minimax algorithm
20 11 November Games: bounded minimax, alpha-beta pruning
21 18 November Lazy Programming
22 23 November Lazy Programming
23 30 November Imperative Programming
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 10:30, 13 Sep 2021