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.

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