15-150: Functional Programming, Fall 2020

Schedule of Lectures

Number  Date     Topics Covered Slides Notes
1 01 September Introduction to functional programming Slides Notes
2 03 September Types, expressions, declarations Slides Notes
3 08 September Patterns and specifications Slides Notes
4 10 September Proving correctness Slides Notes
5 15 September Analyzing efficiency: work and span Slides Notes
6 17 September Sorting lists of integers Slides Notes
7 22 September Datatypes: options and trees Slides Notes
8 24 September Sorting trees of integers Slides Notes
9 29 September Type inference, polymorphism Slides Notes
10 01 October Higher-order functions on lists Slides Notes
11 06 October Higher-order polymorphic sorting Slides Notes
12 08 October Case study: making change Slides Notes
13 October MIDTERM 1
13 15 October Continuation-style, backtracking Slides Notes
14 20 October Exceptions Slides Notes
15 22 October Modular programming, part 1 Slides Notes
16 27 October Modular programming, part 2 Slides Notes
17 29 October An abstract type of sequences; cost semantics
18 03 November Case study: gravitation
19 05 November Games, part 1: minimax evaluation, optimal moves
20 10 November Games, part 2: bounded search; alpha-beta pruning
21 12 November Lazy programming, part 1
22 17 November Lazy programming, part 2
19 November MIDTERM 2
23 24 November Case study: digits of e
24 01 December Imperative programming, part 1
25 03 December Imperative programming, part 2
26 08 December Contrasting functional and imperative style
27 10 December Semester review
TBA FINAL EXAM


The "Notes and Readings" field will usually be blank until it is updated for the lecture.

Disclaimer: All topics and dates are subject to change.

last modified 21:19, 27 Oct 2020