COMP 212: Functional Programming

Schedule of Lectures

Guide to materials:

You should be able to do the homeworks using only the material covered in lecture and labs. You may want to use the readings and Spring 2021 videos as supplementary materials, but note that these notes/videos may cover additonal material that we won't cover this semester, and they may be out of synch with the order we cover things in this semester, and you are not responsible for this extra material.

Num Day Date Topics Covered Materials
1 Tu 3 Sep Parallelism reading, boards, 1.programming, 2.analysis, 3.reasoning,
2 Th 5 Sep Computing by calculation reading, boards, 1.expressions, 2.variables, 3.functions
3 Tu 10 Sep Numbers reading, boards, 1.recursion, 2.methodology, 3.induction
4 Th 12 Sep Aggregates, Booleans, Helper Functions aggregates code, 2.pairs, booleans code, 1.booleans, 2.helper functions
5 Tu 17 Sep Lists reading, boards, 1.lists, 2.more-recursion, 3.induction
6 Th 19 Sep Cost Analysis reading, boards, 1.reverse, 2.analysis, 3.bigO, 4.reverse-analysis,
7 Tu 24 Sep Sequential Sorting reading, boards, 5.fast-reverse 1.sorting, 2.isort-code, 3.isort-correctness, 4.isort-analysis
8 Th 26 Sep Divide and Combine reading, boards, 1.mergesort, 2.split, 3.merge, 4.mergesort-correctness, 5.cost
9 Tu 1 Oct Trees reading, boards, 1.pattern-matching, 2.mergesort-span, 3.trees, 4.tree-analysis
10 Th 3 Oct Parallel Sorting reading, boards, 1.tree-mergesort, 2.tree-merge, 3.tree-splitAt, 4.tree-induction, 5.mergesort-span
11 Tu 8 Oct More Parallel Sorting, Polymorphism I 0.polymorphism, polymorphism reading, polymorphism boards,
12 Th 10 Oct Polymorphism, Datatypes 0.polymorphism, polymorphism reading, polymorphism boards, datatypes code, reading, boards, 2.datatypes,
13 Tu 15 Oct Higher-order Functions I reading, boards, 1.control, 2.hofs, 3.closures, 4.anonymousfunctions, 5.polymorphism, 6.exists
14 Th 17 Oct Higher-order Functions II code, boards, 1.filter, 2.reduce, 3.pipeline, 4.other
Tu 22 Oct Fall break
15 Th 24 Oct Generalizing the IH induction notes, induction boards, 3.induction
16 Tu 29 Oct Sequences reading, boards, 1.motivation, 2.sequences, 3.reduce, 4.counting
17 Th 31 Oct n-body Simulation reading, boards, 1.simulation, 2.vectors, 3.sim-code, 4.sequences
18 Tu 5 Nov Modules I: Signatures, Structures live code, videos code, videos boards, 1.overview, 2.signatures, 3.structures, 4.bincounter, reading
19 Th 7 Nov Modules II: Dictionaries bool dict, option dict, 1.dictionaries, 2.options
20 Tu 12 Nov Modules III reading, 1.representation-invariants, 1.code, 2.testing-modules, 2.code, 3.implementation-evolution, 3.code v1, 3.code v2
21 Th 14 Nov Modules IV: Representation Invariants, AVL Trees code
22 Tu 19 Nov Machine Learning Also see HW10 handout. boards, 0.book, 1.overview, 2.cookies, 3.tests, 4.spam,
23 Th 21 Nov Data Extraction See HW10 handout. boards, 1.extractcombine, 2.mapreduce, 3.mapreduce-code
24 Tu 26 Nov Memoization
Th 28 Nov No class, Thanksgiving
25 Tu 3 Dec Scheduling, Parallelism and Effects reading, boards, 1.scheduling, 2.effects-intro, boards, 1.par-effects, 2.currying
26 Th 5 Dec Prepare for final

Note that the schedule is subject to change.