15-150: Functional Programming, Spring 2021

Lecture Attendance

You are expected to attend lecture synchronously unless you are in a remote time zone.
You should attend the lecture for which you are registered.
Lectures 1 (remote) and 3 (in-person) meet 12:20-1:40pm EST.
Lectures 2 (remote) and 4 (in-person) meet 4:00-5:20pm EST.

Synchronous Lectures
Canvas has a Zoom link for each lecture under the Zoom tab.
Lecture Recordings
Lecture recordings will appear in Canvas under the Panopto tab.

If you are registered for in-person lecture, you may attend lecture in-person but are not required to do so.
You are required to attend synchronously if you do not attend in-person.

We have more students registered in Lecture 3 than we are allowed to have in the lecture room at any one time.
If you are registered in Lecture 3, you should see a Canvas announcement with details about which days you may actually attend Lecture 3 in-person.

If you are registered in Lecture 4, you may attend that lecture in-person on every day it is offered.

If you are registered in Lectures 1 and 2, you are registered as a remote student and therefore should not attend lectures or labs in-person.

Schedule of Lectures

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

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

Disclaimer: All topics and dates are subject to change.

last modified 19:13, 08 Apr 2021