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

Note that the schedule is subject to change.