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

Note that the schedule is subject to change.