Caml
Power
Power
Schedule
Warning: The schedule is under construction and will change.
| Dates | Topic | Notes/Code | Reading |
|---|---|---|---|
| The Basics | |||
| Tu Sep 2 | IF YOU READ THIS, SET UP YOUR CODING ENVIRONMENT! SEE HERE | ||
| W Sep 3 | OCaml Introduction | slides | Reading: OCaml Basics: 2.1-2.8 |
| Sep 4-5 | Precept 1: OCaml Intro | precept1.zip | |
| M Sep 8 | Simple Immutable Data: Variables, Tuples, Records, Options | slides | Reading: Data and Types: 3.4, 3.6, 3.7 |
| Tu Sep 9 | Assign 1 Due | ||
| W Sep 10 | Thinking Inductively: Lists | slides | Reading: Lists: 3.1, 3.8 Optional: Testing with OUnit |
| Sep 11-12 | Precept 2: Lists, Options | precept2.zip | |
| M 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 |
| W Sep 17 | More Data! | slides gml.ml | Reading: ML Data types: 3.2, 3.5, 3.9, 3.10, 3.11, 3.12 |
| Sep 18-19 | Precept 3: Assignment 3, Map, Fold and Datatypes | precept3.zip | |
| Fri Sep 19 | Assign 2 Due | ||
| Reasoning About Programs | |||
| M Sep 22 | Building Interpreters | slides | Operational Semantics |
| W Sep 24 | More Interpreters | slides; simple interpreter code: eval0.ml; with recursive functions: eval3.ml | |
| Sep 25-26 | Precept 4: Exam Preparation | precept4.zip 2022midterm.pdf | |
| Fri Sep 26 | Assign 3 Due | ||
| M Sep 29 | Proving Programs Correct | slides | Equational Reasoning |
| Oct 2-3 | Precept 5: Closures, Assignment 4 | precept5.zip environment-based_slides.pdf | |
| W Oct 1 | In-class Test 1 | Functional programming and debugging. | |
| M Oct 6 | More Correctness Proofs | slides | Equational reasoning about data types
Optional Reading: Odd-Order Theorem; Four-Color Theorem |
| W Oct 8 | Generalizing your Induction Hypothesis | Generalized induction hypotheses; OCaml as compiled | |
| Oct 9-10 | No formal precept; Optional Assignment 4 Help | ||
| Fr Oct 10 | Assign 4 Due | ||
| Fall break | |||
| M Oct 20 | Property-based Testing | Slides | |
| W Oct 22 | Property-based testing, pt 2 | Slides | |
| Oct 23-24 | Precept 7: Equational Reasoning | precept7.zip ; solutions | |
| M Oct 27 | Refs and Lazy Computations | mutable refs, lazy computation | |
| Tu Oct 28 | Assign 5 Due (Theory) | ||
| W Oct 29 | In-class Test 1.5 | ||
| Modularity | |||
| Oct 30-31 | Precept 8: Functors | Functors, Module evaluation | |
| M Nov 3 | Reasoning about Modules and Abstract Types | Representation Invariants | Optional: Abstraction and Representation Invariants |
| Tu Nov 4 | Assign 6 Due | ||
| W Nov 5 | Module Equivalence | Module Equivalence | |
| Nov 6-7 | Precept 9: Modules | precept8.zip ; precept8_sol.zip | |
| M Nov 10 | In-class Test 2 | ||
| Type Systems and Logic | |||
| W Nov 12 | Type Systems | ||
| Nov 13-14 | Precept 10: Project Proposal Discussions | ||
| M Nov 17 | Type Inference | ||
| Tu Nov 18 | Final Assignment Proposal Due | ||
| Thanksgiving Break | |||
| M Nov 24 | Natural Deduction and Curry-Howard Isomorphism | ||
| Parallelism and Concurrency | |||
| W Nov 26 | Parallelism: Futures | ||
| Nov 27-28 | |||
| M Dec 1 | Parallel Collections | Parallel Sequences | Parallel Sequences, Optional Reading: MapReduce; NESL |
| W Dec 3 | Parallel Collections | Parallel Prefix Scan | |
| Dec 4-5 | Precept 11: Parallel map/reduce | precept11.zip | |
| Final Assessment Day for COS 326 (Dec 13-19) | Final Assignment Report Due | ||