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

Note that the schedule is subject to change.