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
Tue, 01/21/20 Lecture 1: Introduction to 3110 §1
Materials
One-page course summary, syllabus
Thu, 01/23/20 Lecture 2: Expressions §2.0, §2.1, §2.2
Materials
Video
Discussion sections begin 1/23
Tue, 01/28/20 Lecture 3: Functions §2.3, §2.4
Materials
Video
Thu, 01/30/20 Lecture 4: Pattern Matching §3.0, §3.1
Materials
Video
Tue, 02/04/20 Lecture 5: Variants §3.2
Materials
Video
Thu, 02/06/20 Lecture 6: Higher-order Programming §4
Materials
Video
Modular Programming
Tue, 02/11/20 Lecture 7: Modules §5.0, §5.1, §5.2
Materials
Video
Thu, 02/13/20 Lecture 8: Functors §5.3
Materials
Video
Tue, 02/18/20 Lecture 9: Abstraction and Specification §6
Materials
Video
Thu, 02/20/20 Lecture 10: Testing §7
Materials
Video
Tue, 02/25/20 February Break: no class
Efficiency
Thu, 02/27/20 Lecture 11: Efficiency §9.0, §9.1
Materials
Video
Tue, 03/03/20 Lecture 12: Mutable Data Types §8
Materials
Video
Thu, 03/05/20 Lecture 13: Hash Tables §9.2
Materials
Video
Tue, 03/10/20 Prelim Details about exams. When: 7:30—9:00 pm.
Thu, 03/12/20 Lecture 14: Amortized Analysis §9.3
Materials
Video
Tue, 03/17/20 Instruction Suspended: no class
Thu, 03/19/20 Instruction Suspended: no class
Tue, 03/24/20 Instruction Suspended: no class
Thu, 03/26/20 Instruction Suspended: no class
Tue, 03/31/20 Spring Break: no class
Thu, 04/02/20 Spring Break: no class
Tue, 04/07/20 Lecture 15: Balanced Trees §9.4, §9.5
Materials
Video-Part1 Video-Part2
Video-Interactive
Discussion sections restart 4/7
Interpreters
Thu, 04/09/20 Lecture 16: Interpreters §10.0, §10.1
Materials
Video-Part1 Video-Part2
Video-Interactive
Tue, 04/14/20 Lecture 17: The Substitution Model §10.2
Materials
Video-Part1 Video-Part2
Video-Interactive
Thu, 04/16/20 Lecture 18: The Environment Model §10.3
Materials
Video-Part1 Video-Part2 Video-Part3
Tue, 04/21/20 Lecture 19: Type Checking §10.4
Materials
Video-Part1 Video-Part2 Video-Part3
Video-Interactive
Advanced Topics
Thu, 04/23/20 Lecture 20: Promises §12.2
Materials
Video-Part1 Video-Part2 Video-Part3
Video-Interactive
LWT Manual
Tue, 04/28/20 Lecture 21: Monads §12.3
Materials
Video-Part1 Video-Part2
Thu, 04/30/20 Lecture 22: Streams and Laziness §12.1
Materials
Video-Part1 Video-Part2 Video-Part3
Video-Interactive
Formal Methods
Tue, 05/05/20 Lecture 23: Proofs about programs §11
Materials
Video-Part1 Video-Part2 Video-Part3
Video-Interactive
Thu, 05/07/20 Lecture 24: Proofs about programs, part 2 §11
Materials
Video-Part1 Video-Part2
THE END
Tue, 05/12/20 Lecture 25: Victory Lap Materials
Video-Part1
Sat, 05/16/20 Final Exam Details about exams.