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
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
Lecture 2: Expressions
Reading: chapter 2
Lecture materials: slides
Recitation: rec2
Recommended exercises: operators, equality, more fun, date fun
Lecture 3: Functions
Reading: chapter 2
Lecture materials: slides
Recitation: rec3
Recommended exercises: fib, fib fast, print int list rec
Labor Day: no class
Lecture 4: Pattern Matching
Reading: chapter 3
Lecture materials: slides
Recitation: rec4
Recommended exercises: concat, patterns, library, powerset, safe hd and tl
Lecture 5: Variants
Reading: chapter 3
Lecture materials: slides
Recitation: rec5
Recommended exercises: quadrant, quadrant when, quadrant poly, depth, list max exn
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
Lecture 7: Modules
Reading: chapter 5
Lecture materials: slides
Recitation: rec7
Recommended exercises: binary search tree dictionary, complex encapsulation, fraction
Lecture 8: Functors
Reading: chapter 5
Lecture materials: slides
Recitation: rec8
Recommended exercises: sets, calendar, first after
Lecture 9: Abstraction and Specification
Reading: chapter 6
Lecture materials: slides
Recitation: rec9
Recommended exercises: poly spec, poly impl
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
Lecture 11: Testing
Reading: chapter 7
Lecture materials: slides
Recitation: rec11
Recommended exercises: black box test, set glass box
Data Structures
Lecture 12: Streams and Laziness
Reading: chapter 8
Lecture materials: slides
Recitation: rec12
Recommended exercises: more streams, filter, different stream rep, lazy list
Lecture 13: Balanced Trees
Reading: chapter 8
Lecture materials: slides
Recitation: rec13
Recommended exercises: efficient traversal, RB draw complete, RB draw insert
Fall Break: no class
Fall Break: no class
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).
Lecture 14: Mutability
Reading: chapter 8
Lecture materials: slides
Recitation: rec14
Recommended exercises: addition assignment, physical equality, norm
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
Lecture 16: Monads
Reading: chapter 8
Lecture materials: slides
Recitation: rec16
Recommended exercises: add opt, list monad, trivial monad laws
Interpreters
Lecture 17: Interpreters
Reading: chapter 9
Lecture materials: slides
Recitation: rec17
Recommended exercises: parse, times parsing, pair parsing
Lecture 18: The Substitution Model
Reading: chapter 9
Lecture materials: slides
Recitation: rec18
Recommended exercises: substitution, application, pair evaluation
Lecture 19: The Environment Model
Reading: chapter 9
Lecture materials: slides
Recitation: rec19
Recommended exercises: let and match expressions, closures, dynamic scope
Formal Methods
Lecture 20: Functional Programming in Coq
Reading: notes (Coq source), Coq installation, Coq tactics cheatsheet
Lecture materials: slides
Recitation: rec20
Recommended exercises: exercises
Lecture 21: Logic
Reading: notes (Coq source)
Lecture materials: slides
Recitation: rec21
Recommended exercises: exercises
Lecture 22: Proofs are Programs
Reading: notes (Coq source)
Lecture materials: slides
Recitation: rec22
Recommended exercises: exercises
Lecture 23: Induction
Reading: notes (Coq source)
Lecture materials: slides
Recitation: rec23
Recommended exercises: exercises
Lecture 24: Verification
Reading: notes (Coq source)
Lecture materials: slides
Recitation: rec24
Recommended exercises: exercises
Advanced Topics
Thanksgiving Break: no class
Thanksgiving Break: no class
Lecture 25: Type Inference
Reading: chapter 9
Lecture materials: slides
Recitation: rec25
Recommended exercises: infer, unify
Lecture 26: Proof Engineering (Prof. Greg Morrisett, Dean of CIS)
Lecture materials: slides
Recitation: rec26
THE END
Lecture 27: Victory Lap
Lecture materials: slides
Final Exam: Details about exams. When and where: 9:00–11:30 am; Statler Auditorium (185)