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.