Caml
Power
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 | ||