Caml
Power

Lecture Notes

Warning: The schedule below is only approximate. It may and probably will change. Amended lectures that reflect the content of the lecture may be posted after lecture.

Dates Topic Notes/Code Reading
The Basics
Sep 17 Course Introduction Course Intro -
Sep 17 O'Caml Introduction Ocaml Intro, Makefile, hello.ml, sum.ml Functional Basics, Type Checking
Sep 19 Simple Data Let and Tuples, Unit and Options Type-directed Programming
Sep 20/21 Precept 1: OCaml Intro, Records precept01.ml
Sep 24 Thinking Recursively Structural Recursion, lists.ml Thinking Recursively
Sep 26 Poly-HO: Polymorphism and Higher-Order Programming Poly-HO!, mapreduce.ml Polymorphism and Higher-order Programming
Sep 27/28 Precept 2: Lists, map, reduce folds.ml, folds-solutions.ml, precept02.ml
Oct 1 Pipelines, Datatypes Pipelines, Datatypes, pipeline.ml
Reasoning About Programs
Oct 3 The Functional Evaluation Model Core OCaml Operational Semantics, eval0.ml, eval1.ml Operational Semantics
Oct 4/5 Precept 3: Assignment 3, Logic, Satisfiability precept03.ml
Oct 8 Recursive Evaluators, Mutual Recursion, Proving Programs Correct (Intro) eval2.ml, mutual.ml Equational Reasoning (up to the definitions of total and partial functions)
Oct 10 Proving Programs Correct (Lists) - Equational Reasoning
Oct 11/12 Precept 4: Assignment 4, Equational Reasoning precept04.pdf, precept04-solutions.pdf
Oct 15 Proving Programs Correct (Naturals and Data Types)
Representations of Data Types
tree-properties.ml Equational Reasoning about Natural Numbers and Trees Optional Reading: Odd-Order Theorem, Four-Color Theorem
Oct 17 Functional Space Model: Closures, Tail-Calls and Continuations Space Model, closure.ml tail.ml -
Oct 18/19 Precept 5: More Equational Reasoning, CPS and Closure Conversion precept05.pdf, solutions05-code.ml, solutions05-proofs.txt
Oct 22 More Closures and Continuations Continuations Continued, closure.ml -
Modularity
Oct 22 OCaml Modules Signatures and Structures -
Oct 24 Midterm I
Nov 5 More Modules and Functors More Modules and Functors, an abstract, infinite data structure: streams.tgz OCaml Manual: Signatures, Structures, Functors
Nov 7 Modular Reasoning class notes Abstraction and Representation Invariants
Effects, Parallelism and Concurrency
Nov 12 Mutable Data Structures and Imperative Interfaces Mutable Data -
Nov 12 Parallelism Intro Parallelism, Concurrency and Technology Trends -
Nov 14 Threads and Futures slides notes
Nov 19 Quiz I
Nov 19 Threads, Locks and Mutable Data slides
Nov 21 Asynchronous Workflows Guest Lecture:
Ron Minsky (Jane St) slides
-
Nov 26 Parallel Complexity Models - Parallel Complexity Models
Nov 28 Scheduling; Parallel Sequences - Scheduling, Parallel Sequences Optional Reading: NESL
Dec 3 Map-Reduce slides Map-Reduce OSDI 2004
Dec 5 Parallel Scans and Filters - -
Dec 10 Quiz II - -
Dec 12 Monads and Software Transactional Memory STM slides Optional Reading: Beautiful Concurrency