Schedule
Lectures: Tue and Thur 10:10–11:00am, Call Auditorium, starting Tuesday, January 22, 2019.
Discussion sections: Various rooms and times, starting Monday, January 28, 2019.
Level Up: Schedule
Note: this is a tentative schedule that is subject to change, especially for lectures late in the semester.
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 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 |
|
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 Code: code Recitation: rec5 Recommended exercises: quadrant, quadrant when, quadrant poly, depth, list max exn |
|
Lecture 6: Higher-order Programming
Reading: chapter 4 Lecture materials: slides Code: code 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 Code: code Recitation: rec9 Recommended exercises: poly spec, poly impl |
|
Lecture 10: Abstraction Functions and Representation Invariants
Reading: chapter 6 Lecture materials: slides Code: code Recitation: rec10 Recommended exercises: int set rep, association list maps, function maps |
|
Winter Break: no class | |
Winter Break: no class | |
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 |
|
Prelim: Details about exams. | |
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 Code: code Recitation: rec15 Recommended exercises: promise and resolve, promise and resolve lwt, timing challenges 1-4 |
|
Lecture 16: Monads
Reading: chapter 8 Lecture materials: slides Code: code Recitation: rec16 Recommended exercises: add opt, list monad, trivial monad laws |
|
Lecture 17: Memoization
Reading: chapter 8 Lecture materials: slides Code: code Recitation: rec17 Recommended exercises: |
|
Lecture 18: OCaml In Industry (Guest lecture) | |
Interpreters | |
Spring Break (no joke!): no class | |
Spring Break: no class | |
Spring Break: no class | |
Spring Break: no class | |
Spring Break: no class | |
Lecture 19: Interpreters
Reading: chapter 9 Lecture materials: slides Code: code Recitation: rec19 Recommended exercises: parse, times parsing, pair parsing |
|
Lecture 20: The Substitution Model
Reading: chapter 9 Lecture materials: slides Code: code Recitation: rec20 Recommended exercises: substitution, application, pair evaluation |
|
Lecture 21: Type Systems
Reading: chapter 9 Lecture materials: slides Code: code Recitation: rec21 Recommended exercises: subexpression types, typing |
|
Lecture 22: Effective OCaml (Guest lecture by Yaron Minsky PhD ‘02) | |
Lecture 23: Environment Model
Reading: chapter 9 Lecture materials: slides Code: code Recitation: rec23 Recommended exercises: simple expressions, let and match expressions, closures |
|
Formal Methods | |
Lecture 24: Introduction to Formal Methods
Reading: notes (Coq source), Coq installation, Coq tactics cheatsheet Lecture materials: slides Recitation: rec24 Recommended exercises: exercises |
|
Lecture 25: Proofs are Programs
Reading: notes (Coq source) Lecture materials: slides Recitation: rec25 Recommended exercises: exercises |
|
Lecture 26: Verification
Reading: notes (Coq source) Lecture materials: slides Recitation: rec26 Recommended exercises: exercises |
|
The End | |
Lecture 28: Victory Lap
Lecture materials: slides |
|
Final Exam: Details about exams. |