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 Th 23 Jan Parallelism reading, boards, 1.programming, 2.analysis, 3.reasoning,
2 Tu 28 Jan Computing by calculation reading, boards, 1.expressions, 2.variables, 3.functions
3 Th 30 Jan Aggregates code from class this year, code that goes with the video, 2.pairs,
4 Tu 4 Feb Numbers reading, boards, 1.recursion, 2.methodology, 3.induction
5 Th 6 Feb Booleans, Helper Functions code from this year, boards from this year, code for the videos, 1.booleans, 2.helper functions
6 Tu 11 Feb Lists reading, boards, 1.lists, 2.more-recursion, 3.induction
7 Th 13 Feb Cost Analysis reading, boards, 1.reverse, 2.analysis, 3.bigO, 4.reverse-analysis,
8 Tu 18 Feb Sequential Sorting reading, boards, 5.fast-reverse 1.sorting, 2.isort-code, 3.isort-correctness, 4.isort-analysis
9 Th 20 Feb Divide and Combine reading, boards, 1.mergesort, 2.split, 3.merge, 4.mergesort-correctness, 5.cost
10 Tu 25 Feb Trees reading, boards, 1.pattern-matching, 2.mergesort-span, 3.trees, 4.tree-analysis
11 Th 27 Feb Parallel Sorting reading, boards, 1.tree-mergesort, 2.tree-merge, 3.tree-splitAt, 4.tree-induction, 5.mergesort-span
12 Tu 4 Mar More Parallel Sorting, Polymorphism I 0.polymorphism, polymorphism reading, polymorphism boards,
13 Th 6 Mar Polymorphism, Datatypes 0.polymorphism, polymorphism reading, polymorphism boards, datatypes code, reading, boards, 2.datatypes,
14 Tu 25 Mar Higher-order Functions I reading, boards, 1.control, 2.hofs, 3.closures, 4.anonymousfunctions, 5.polymorphism, 6.exists
15 Th 27 Mar Higher-order Functions II code, boards, 1.filter, 2.reduce, 3.pipeline, 4.other
16 Tu 1 Apr Sequences reading, boards, 1.motivation, 2.sequences, 3.reduce, 4.counting
17 Th 3 Apr n-body Simulation reading, boards, 1.simulation, 2.vectors, 3.sim-code, 4.sequences
18 Tu 8 Apr Modules I: Signatures, Structures live code, videos code, videos boards, 1.overview, 2.signatures, 3.structures, 4.bincounter, reading
19 Th 10 Apr Modules II: Dictionaries bool dict, option dict, 1.dictionaries, 2.options
20 Tu 15 Apr 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 Apr Modules IV: Representation Invariants, AVL Trees code
22 Tu 22 Apr Machine Learning Also see HW10 handout. boards, 0.book, 1.overview, 2.cookies, 3.tests, 4.spam,
23 Th 24 Apr Data Extraction See HW10 handout. boards, 1.extractcombine, 2.mapreduce, 3.mapreduce-code
24 Tu 29 Apr Scheduling, Parallelism and Effects reading, boards, 1.scheduling, 2.effects-intro, boards, 1.par-effects, 2.currying
25 Th 1 May Prepare for final See final non-collab problem handout
26 Tu 6 May Prepare for final

Note that the schedule is subject to change.