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 reading, boards, 1.lists, 2.more-recursion, 3.induction
6 Th 22 Sep Cost Analysis reading, boards, 1.reverse, 2.analysis, 3.bigO, 4.reverse-analysis,
7 Tu 27 Sep Sequential Sorting reading, boards, 1.sorting, 2.isort-code, 3.isort-correctness, 4.isort-analysis
8 Th 29 Sep Divide and Combine reading, boards, 1.mergesort, 2.split, 3.merge, 4.mergesort-correctness, 5.cost
9 Tu 4 Oct Trees reading, boards, 1.pattern-matching, 2.mergesort-span, 3.trees, 4.tree-analysis
10 Th 6 Oct Parallel Sorting reading, boards, 1.tree-mergesort, 2.tree-merge, 3.tree-splitAt, 4.tree-induction, 5.mergesort-span
11 Tu 11 Oct ?
12 Th 13 Oct Polymorphism and Datatypes datatypes code, reading, boards, 1.polymorphism, 2.datatypes,
13 Tu 18 Oct Higher-order Functions I 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 reading, boards, 1.motivation, 2.sequences, 3.reduce, 4.counting
16 Tu 1 Nov Sequences II
17 Th 3 Nov n-body Simulation reading, boards, 1.simulation, 2.vectors, 3.sim-code, 4.sequences
18 Tu 8 Nov Modules I: Signatures, Structures code, boards, 1.overview, 2.signatures, 3.structures, 4.bincounter, reading
19 Th 10 Nov Modules II: Dictionaries bool dict, option dict, 1.dictionaries, 2.options
20 Tu 15 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 17 Nov ?
22 Tu 22 Nov Machine Learning Also see HW10 handout. boards,, 1.overview, 2.cookies, 3.tests, 4.spam,
Th 24 Nov Thanksgiving
23 Tu 29 Nov Data Extraction See HW10 handout. boards, 1.extractcombine, 2.mapreduce, 3.mapreduce-code
24 Th 1 Dec Scheduling reading, boards, 1.scheduling, 2.effects-intro
25 Tu 6 Dec Parallelism and effects boards, 1.par-effects, 2.currying
26 Th 8 Dec Memoization/Dynamic Programming

Note that the schedule is subject to change.