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 the live boards) 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 6 Sep Parallelism live boards, reading, boards, 1.programming, 2.analysis, 3.reasoning,
2 Th 8 Sep Computing by calculation live boards, reading, boards, 1.expressions, 2.variables, 3.functions
3 Tu 13 Sep Numbers live boards, reading, boards, 1.recursion, 2.methodology, 3.induction
4 Th 15 Sep Aggregates, Booleans, Helper Functions, Testing live boards, aggregates code, 2.pairs, booleans and helper functions code, 1.booleans, 2.helper functions
5 Tu 20 Sep Lists live boards, reading, boards, 1.lists, 2.more-recursion, 3.induction
6 Th 22 Sep Cost Analysis live boards, reading, boards, 1.reverse, 2.analysis, 3.bigO, 4.reverse-analysis,
7 Tu 27 Sep Sequential Sorting live boards, reading, boards, 1.sorting, 2.isort-code, 3.isort-correctness, 4.isort-analysis
8 Th 29 Sep Divide and Combine live boards, reading, boards, 1.mergesort, 2.split, 3.merge, 4.mergesort-correctness, 5.cost
9 Tu 4 Oct Trees live boards, reading, boards, 2.mergesort-span, 3.trees, 4.tree-analysis
10 Th 6 Oct Parallel Sorting live boards, reading, boards, 1.tree-mergesort, 2.tree-merge, 3.tree-splitAt, 4.tree-induction, 5.mergesort-span
11 Tu 11 Oct Correctness of Mergesort; Datatypes and Pattern Matching live boards, 1.pattern-matching
12 Th 13 Oct More Datatypes; Polymorphism live boards, datatypes code, reading, boards, 1.polymorphism, 2.datatypes,
13 Tu 18 Oct Higher-order Functions I live boards, reading, boards, 1.control, 2.hofs, 3.closures, 4.anonymousfunctions, 5.polymorphism, 6.exists
14 Th 20 Oct Higher-order Functions II code, boards, 1.filter, 2.reduce, 3.pipeline, 4.other
Tu 25 Oct Fall Break
15 Th 27 Oct Sequences live boards, reading, boards, 1.motivation, 2.sequences,
16 Tu 1 Nov Sequences II/Start NBody live boards, 3.reduce, 4.counting
17 Th 3 Nov n-body Simulation live boards, reading, boards, 1.simulation, 2.vectors, 3.sim-code, 4.sequences
18 Tu 8 Nov Modules I: Signatures, Structures live code, videos boards, 1.overview, 2.signatures, 3.structures, 4.bincounter, videos code, reading
19 Th 10 Nov Modules II: Dictionaries bool dict, option dict, 1.dictionaries, 2.options
20 Tu 15 Nov Modules III live code bool, live code options, live code with size slow, live code size cached, live code size smart constructor, reading, 1.representation-invariants, 1.code, 2.testing-modules, 2.code, 3.implementation-evolution, 3.code v1, 3.code v2
21 Th 17 Nov Homework help session
22 Tu 22 Nov Data Extraction live boards, live code, See HW10 handout. boards, 1.extractcombine, 2.mapreduce, 3.mapreduce-code
Th 24 Nov Thanksgiving
23 Tu 29 Nov Machine Learning live boards, Also see HW10 handout. boards,, 1.overview, 2.cookies, 3.tests, 4.spam,
24 Th 1 Dec Graphs more sequence library
25 Tu 6 Dec Garbage Collection / Scheduling, Parallelism and Effects reading, boards, 1.scheduling, 2.effects-intro boards, 1.par-effects, 2.currying
26 Th 8 Dec Homework Help Session

Note that the schedule is subject to change.