Lectures

Lectures: Tue and Thur 10:10–11:00am, Bailey Hall 101, starting Thursday, August 29, 2019.

Discussion sections: Various rooms and times, starting Tuesday, September 3, 2019.

Level Up: Schedule

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 are accessible only by students registered in the course. Videos are immediately available in Panopto as soon as the Bailey Hall production staff finishes them; they are posted here sometime later.

Functional Programming
Lecture 1: Introduction to 3110 §1
Video
One-page course summary, syllabus
Labor Day: no class
Lecture 2: Expressions §2.0, §2.1, §2.2
Video
Discussion sections begin today
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
Efficiency
Lecture 11: Efficiency §9.0, §9.1
Video
Lecture 12: Mutable Data Types §8
Video
Lecture 13: Hash Tables §9.2
Video
Fall Break: no class
Fall Break: no class
Prelim Details about exams. When: 7:30—9:00 pm. Where: TBA.
Lecture 14: Amortized Analysis §9.3
Lecture 15: Balanced Trees §9.4, §9.5
Interpreters
Lecture 16: Interpreters §10.0, §10.1
Lecture 17: The Substitution Model §10.2
Lecture 18: The Environment Model §10.3
Lecture 19: Type Checking §10.4
Formal Methods
Lecture 20: Proofs about programs §11
Lecture 21: Proofs about recursive programs §11
Lecture 22: Proofs about specifications §11
Advanced Topics
Lecture 23: Promises §12.2
LWT Manual
Lecture 24: Streams and Laziness §12.1
Thanksgiving Break: no class
Thanksgiving Break: no class
Lecture 25: Monads §12.3
Lecture 26: Proofs are Programs
THE END
Lecture 27: Victory Lap
Final Exam Details about exams. When: 9:00—11:30 am. Where: TBA.