Caml
Power

Schedule

Warning: The schedule is under construction and will change.

Dates Topic Notes/Code Reading
Functional Programming
W Sep 2 IF YOU READ THIS, SET UP YOUR CODING ENVIRONMENT! SEE HERE
Th Sep 3 Course Introduction slides Reading: OCaml Basics: 2.1-2.8
Sep 3-4 Precept 1: OCaml Intro precept1.zip
Tu Sep 8 Simple Immutable Data: Variables, Tuples, Records, Options slides Reading: Data and Types: 3.4, 3.6, 3.7
W Sep 9 Assign 1 Due
Th Sep 10 Thinking Inductively: Lists slides Reading: Lists: 3.1, 3.8 Optional: Testing with OUnit
Sep 10-11 Precept 2: Lists, Options precept2.zip
Tu Sep 15 Poly-HO: Polymorphism and Higher-Order Programming slides Reading: Higher-order Programming: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7
Th Sep 17 More Data! slides gml.ml Reading: ML Data types: 3.2, 3.5, 3.9, 3.10, 3.11, 3.12
Sep 17-18 Precept 3: Assignment 3, Map, Fold and Datatypes precept3.zip
Fri Sep 18 Assign 2 Due
Tu Sep 22 Building Interpreters slides Operational Semantics
Th Sep 24 More Interpreters slides; simple interpreter code: eval0.ml; with recursive functions: eval3.ml
Sep 24-25 Precept 4: Test Preparation precept4.zip 2022midterm.pdf
Fri Sep 25 Assign 3 Due
Tu Sep 29 Lazy Computation
Oct 1-2 Precept 5: Closures, Assignment 4 precept5.zip environment-based_slides.pdf
Th Oct 1 In-class Test 1 Functional programming and debugging.
Logic Foundations
Tu Oct 6 Intro to Logic
Th Oct 8 Intro to Logic
Oct 8-9 Precept: Logic and SAT
Fri Oct 9 Assign 4 Due
Tu Oct 13 Logic
Th Oct 15 Logic
Oct 15-16 No precept this week
Fall break
Reasoning about Functional Programs
Tu Oct 27 Reasoning about Functional Programs
Th Oct 29 Reasoning about Functional Programs
Oct 29-30 Precept 8: Reasoning about Functional Programs slides
Tu Nov 3 Reasoning about Functional Programs
Tu Nov 3 Assign 5 Due (SAT)
Nov 4-7 Assignment 5 Debriefs
Th Nov 5 Reasoning about Functional Programs
Nov 5-6 Precept 9: Reasoning about Functional Programs precept9.zip
Tu Nov 10 Assign 6 Due (Lean)
Nov 11-14 Assignment 6 Debriefs
Type Systems
Tu Nov 10 Type Systems
Th Nov 12 Curry-Howard Isomorphism slides
Nov 12-13 Precept 10: Project Proposal Discussions
Tu Nov 17 Type Inference slides
W Nov 18 Final Assignment Proposal Due
Th Nov 19 Type Inference Continued slides
Nov 19-20 Precept 11: Final Project Help
Tu Nov 24 In-class Test 2
Thanksgiving Break
Reasoning about Imperative Programs
Tu Dec 1 Reasoning about Imperative Programs
Th Dec 3 Reasoning about Imperative Programs
Dec 3-4 Precept 12: Final Project Presentations
Dec 15 Final assignment report
Dec 16-20 Project Debriefs