Schedule
Lectures: Tue and Thur 10:10–11:00am, Klarman KG70, starting Thursday, August 23, 2018.
Discussion sections: Various rooms and times, starting Monday, August 27, 2018.
Level Up: Schedule
Functional Programming | |
Thu, 08/23/18 | Lecture 1: Introduction to 3110
Reading: chapter 1, one-page course summary, syllabus, how to install OCaml, tips for success in 3110, asking technical questions Lecture materials: slides Recitation: rec1 Recommended exercises: n/a |
Tue, 08/28/18 | Lecture 2: Expressions
Reading: chapter 2 Lecture materials: slides Recitation: rec2 Recommended exercises: operators, equality, more fun, date fun |
Thu, 08/30/18 | Lecture 3: Functions
Reading: chapter 2 Lecture materials: slides Recitation: rec3 Recommended exercises: fib, fib fast, print int list rec |
Mon, 09/03/18 | Labor Day: no class |
Tue, 09/04/18 | Lecture 4: Pattern Matching
Reading: chapter 3 Lecture materials: slides Recitation: rec4 Recommended exercises: concat, patterns, library, powerset, safe hd and tl |
Thu, 09/06/18 | Lecture 5: Variants
Reading: chapter 3 Lecture materials: slides Recitation: rec5 Recommended exercises: quadrant, quadrant when, quadrant poly, depth, list max exn |
Tue, 09/11/18 | Lecture 6: Higher-order Programming
Reading: chapter 4 Lecture materials: slides Recitation: rec6 Recommended exercises: twice no arguments, repeat, clip, exists, more list fun, tree map |
Modular Programming | |
Thu, 09/13/18 | Lecture 7: Modules
Reading: chapter 5 Lecture materials: slides Recitation: rec7 Recommended exercises: binary search tree dictionary, complex encapsulation, fraction |
Tue, 09/18/18 | Lecture 8: Functors
Reading: chapter 5 Lecture materials: slides Recitation: rec8 Recommended exercises: sets, calendar, first after |
Thu, 09/20/18 | Lecture 9: Abstraction and Specification
Reading: chapter 6 Lecture materials: slides Recitation: rec9 Recommended exercises: poly spec, poly impl |
Tue, 09/25/18 | Lecture 10: Abstraction Functions and Representation Invariants
Reading: chapter 6 Lecture materials: slides Recitation: rec10 Recommended exercises: int set rep, association list maps, function maps |
Thu, 09/27/18 | Lecture 11: Testing
Reading: chapter 7 Lecture materials: slides Recitation: rec11 Recommended exercises: black box test, set glass box |
Data Structures | |
Tue, 10/02/18 | Lecture 12: Streams and Laziness
Reading: chapter 8 Lecture materials: slides Recitation: rec12 Recommended exercises: more streams, filter, different stream rep, lazy list |
Thu, 10/04/18 | Lecture 13: Balanced Trees
Reading: chapter 8 Lecture materials: slides Recitation: rec13 Recommended exercises: efficient traversal, RB draw complete, RB draw insert |
Mon, 10/08/18 | Fall Break: no class |
Tue, 10/09/18 | Fall Break: no class |
Thu, 10/11/18 | Prelim: Details about exams. When and where: 5:30–7:00 in Rockefeller Hall 230 (overflow to 115 and 122 as needed); and 7:30–9:00pm in Rockefeller Hall 201 (overflow to 203 and 230 as needed). |
Tue, 10/16/18 | Lecture 14: Mutability
Reading: chapter 8 Lecture materials: slides Recitation: rec14 Recommended exercises: addition assignment, physical equality, norm |
Thu, 10/18/18 | Lecture 15: Promises
Reading: chapter 8, LWT Manual Lecture materials: slides Recitation: rec15 Recommended exercises: promise and resolve, promise and resolve lwt, timing challenges 1-4 |
Tue, 10/23/18 | Lecture 16: Monads
Reading: chapter 8 Lecture materials: slides Recitation: rec16 Recommended exercises: add opt, list monad, trivial monad laws |
Interpreters | |
Thu, 10/25/18 | Lecture 17: Interpreters
Reading: chapter 9 Lecture materials: slides Recitation: rec17 Recommended exercises: parse, times parsing, pair parsing |
Tue, 10/30/18 | Lecture 18: The Substitution Model
Reading: chapter 9 Lecture materials: slides Recitation: rec18 Recommended exercises: substitution, application, pair evaluation |
Thu, 11/01/18 | Lecture 19: The Environment Model
Reading: chapter 9 Lecture materials: slides Recitation: rec19 Recommended exercises: let and match expressions, closures, dynamic scope |
Formal Methods | |
Tue, 11/06/18 | Lecture 20: Functional Programming in Coq
Reading: notes (Coq source), Coq installation, Coq tactics cheatsheet Lecture materials: slides Recitation: rec20 Recommended exercises: exercises |
Thu, 11/08/18 | Lecture 21: Logic
Reading: notes (Coq source) Lecture materials: slides Recitation: rec21 Recommended exercises: exercises |
Tue, 11/13/18 | Lecture 22: Proofs are Programs
Reading: notes (Coq source) Lecture materials: slides Recitation: rec22 Recommended exercises: exercises |
Thu, 11/15/18 | Lecture 23: Induction
Reading: notes (Coq source) Lecture materials: slides Recitation: rec23 Recommended exercises: exercises |
Tue, 11/20/18 | Lecture 24: Verification
Reading: notes (Coq source) Lecture materials: slides Recitation: rec24 Recommended exercises: exercises |
Advanced Topics | |
Wed, 11/21/18 | Thanksgiving Break: no class |
Thu, 11/22/18 | Thanksgiving Break: no class |
Tue, 11/27/18 | Lecture 25: Type Inference
Reading: chapter 9 Lecture materials: slides Recitation: rec25 Recommended exercises: infer, unify |
Thu, 11/29/18 | Lecture 26: Proof Engineering (Prof. Greg Morrisett, Dean of CIS)
Lecture materials: slides Recitation: rec26 |
THE END | |
Tue, 12/04/18 | Lecture 27: Victory Lap
Lecture materials: slides |
Mon, 12/10/18 | Final Exam: Details about exams. When and where: 9:00–11:30 am; Statler Auditorium (185) |