Caml
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: Introduction to ML Modules and Functors slides
M Nov 3 Representation Invariants slides Optional: Abstraction and Representation Invariants
W Nov 5 Module Equivalence slides
Nov 5-6 Precept 9: Exam Review precept9.zip
Thurs Nov 6 Assign 6 Due
Type Systems and Logic
M Nov 10 In-class Test 2
W Nov 12 Type Systems slides
Nov 13-14 Precept 10: Project Proposal Discussions
M Nov 17 Type Inference slides
Tu Nov 18 Final Assignment Proposal Due
W Nov 19 Type Inference Continued slides
Nov 19-20 Precept 11: Final Project Help
Additional Topics
M Nov 24 Parallelism and Futures slides
Thanksgiving Break
M Dec 1 Parallel Collections Parallel Sequences Parallel Sequences, Optional Reading: MapReduce; NESL
W Dec 3 Parallel Collections Parallel Prefix Scan
Dec 3-4 Precept 12: Final Project Presentations
Final Assessment Day for COS 326 (Dec 13-19) Final Assignment Report Due