Lectures
Lectures: Tue and Thur 10:10–11:00am, Panopto and Zoom. See Canvas for details.
Discussion sections: Various rooms and times, starting Thursday, January 23, 2020.
Materials are made available in a public repo. Any broken links to materials in the schedule below mean that those materials have not yet been released.
Videos: Recorded videos of lectures are accessible in Panopto/Canvas by students who are registered in the course. We regret that they are not available more widely because of FERPA restrictions.
Functional Programming | ||
Lecture 1: Introduction to 3110 |
§1
One-page course summary, syllabus |
|
Lecture 2: Expressions |
§2.0,
§2.1,
§2.2
Video Discussion sections begin 1/23 |
|
Lecture 3: Functions |
§2.3,
§2.4
Video |
|
Lecture 4: Pattern Matching |
§3.0,
§3.1
Video |
|
Lecture 5: Variants |
§3.2
Video |
|
Lecture 6: Higher-order Programming |
§4
Video |
|
Modular Programming | ||
Lecture 7: Modules |
§5.0,
§5.1,
§5.2
Video |
|
Lecture 8: Functors |
§5.3
Video |
|
Lecture 9: Abstraction and Specification |
§6
Video |
|
Lecture 10: Testing |
§7
Video |
|
February Break: no class | ||
Efficiency | ||
Lecture 11: Efficiency |
§9.0,
§9.1
Video |
|
Lecture 12: Mutable Data Types |
§8
Video |
|
Lecture 13: Hash Tables |
§9.2
Video |
|
Prelim | Details about exams. When: 7:30—9:00 pm. | |
Lecture 14: Amortized Analysis |
§9.3
Video |
|
Instruction Suspended: no class | ||
Instruction Suspended: no class | ||
Instruction Suspended: no class | ||
Instruction Suspended: no class | ||
Spring Break: no class | ||
Spring Break: no class | ||
Lecture 15: Balanced Trees |
§9.4,
§9.5
Video-Part1 Video-Part2 Video-Interactive Discussion sections restart 4/7 |
|
Interpreters | ||
Lecture 16: Interpreters |
§10.0,
§10.1
Video-Part1 Video-Part2 Video-Interactive |
|
Lecture 17: The Substitution Model |
§10.2
Video-Part1 Video-Part2 Video-Interactive |
|
Lecture 18: The Environment Model |
§10.3
Video-Part1 Video-Part2 Video-Part3 |
|
Lecture 19: Type Checking |
§10.4
Video-Part1 Video-Part2 Video-Part3 Video-Interactive |
|
Advanced Topics | ||
Lecture 20: Promises |
§12.2
Video-Part1 Video-Part2 Video-Part3 Video-Interactive LWT Manual |
|
Lecture 21: Monads |
§12.3
Video-Part1 Video-Part2 |
|
Lecture 22: Streams and Laziness |
§12.1
Video-Part1 Video-Part2 Video-Part3 Video-Interactive |
|
Formal Methods | ||
Lecture 23: Proofs about programs |
§11
Video-Part1 Video-Part2 Video-Part3 Video-Interactive |
|
Lecture 24: Proofs about programs, part 2 |
§11
Video-Part1 Video-Part2 |
|
THE END | ||
Lecture 25: Victory Lap |
Video-Part1 |
|
Final Exam | Details about exams. |