| Schedule subject to change as course progresses. | 
|---|
      | Lecture slides for lectures not yet given are preliminary,
            and may change. | 
|---|
  | Day | Date | Topic | Slides and Code | Videos | Asmt Given | Asmt Due | 
| Week 1 | 
|---|
| 1 | Aug 22 | Course Introduction, Introduction to Ocaml, Environments | slides (PPT)
             (full sized PDF)
             (6 up PDF) 
    code (OCaml CODE)
         (SHELL)
 | Lect 1 | MP1: OCaml: Basic Ocaml |  | 
|---|
| 2 | Aug 24 | Ocaml Boolean, Tuples, Functions, Closures | slides continued from Lecture 1 | Lect 2 | WA1: Evaluation and Evironments |  | 
|---|
| Week 2 | 
|---|
| 3 | Aug 29 |  |  |  |  |  | 
|---|
| 3 | Aug 29 | Closures and Evaluation of Function Application, Order of Evaluation in OCaml | slides
     (PPT)
             (full sized PDF)
             (6 up PDF) | Lect 3 | MP2: Pattern Matching and Recursion | MP1 | 
|---|
| 4 | Aug 31 | Higher-Order Functions, Pattern Matching and Recursion over Lists | slides
     (PPT)
             (full sized PDF)
             (6 up PDF) | Lect 4 | WA2: Evaluating the Application of a Function | WA1 | 
|---|
| Week 3 | 
|---|
| 5 | Sep 5 | Lists, List Pattern Matching, Recursion over Lists, Structural Recursion | slides continued from Lecture 4 | Lect 5 | MP3: Patterns of Recursion, Higher-order Functions | MP2 | 
|---|
| 6 | Sep 7 | Forms of Recursion and Higher-Order Recursive Operators | slides continued from Lectures 4 and 5 | Lect 6 | WA3XC: Order of Evaluation | WA2 | 
|---|
| Week 4 | 
|---|
| 7 | Sep 12 |  |  |  |  |  | 
|---|
| 7 | Sep 12 | Continuations and Continutation Passing Style | slides (PPT)
             (full sized PDF),
             (6 up PDF) | Lect 7 | MP4: Higher-Order Functions and Continuation-Passing Style | MP3 | 
|---|
| 8 | Sep 14 | Continuation Passing Style (CPS) Transformation | slides continued from Lecture 7 | Lect 8 | WA4: CSP Transformation; Working with Mathematical Specifications |  | 
|---|
|  | 9/14-9/16 |  | Covers through Leture 6 |  |  |  | 
|---|
| Week 5 | 
|---|
  | 9 | Sep 19 | User Defined Types in Ocaml, Data Constructors and Pattern Matching | slides (PPT)
             (full sized PDF),
             (6 up PDF) | Lect 9 | MP5: Working with ADTs: Implementing CPS Transformation |  | 
  | 10 | Sep 21 | Recursive Data Types in OCaml | slides continued from Lecture 9 | Lect 10 | WA4 was given 9/14 | WA3XC (full cr) | 
| Week 6 | 
|---|
| 11 | Sep 26 | Types and Type Systems | slides (PPT)
           (full sized PDF)
           (6 up PDF) | Lect 11 | MP5 was given 9/19 | MP4 | 
|---|
| 12 | Sep 28 | Type Derivation | slides continued from Lecture 11 | Lect 12 | WA5: Polymorphic Type Derivation | WA4 | 
|---|
| Week 7 | 
|---|
| 13 | Oct 3 |  |  |  |  |  | 
|---|
| 13 | Oct 3 | Monomorphic Type Derivation | slides (PPT)
             (full sized PDF)
             (6 up PDF) | Lect 13 | MP6: A Unification-Based Type Inferencer | MP5 | 
|---|
  | 14 | Oct 5 | Polymorphic Type Derivation | slides 
           (PPT)
           (full sized PDF)
           (6 up PDF) | Lect 14 | WA6: Incremental Unification Algorithm | WA5 | 
| Week 8 | 
|---|
  | 15 | Oct 10 | Type Inference | slides continued from Lecture 14 | Lect 15 | MP7: Unification Algorithm |  | 
  | 16 | Oct 12 | Day Off for MT2 |  |  |  |  | 
|  | 10/12-10/14 |  | Covers Lecture 7 - 14 |  |  |  | 
|---|
| Week 9 | 
|---|
| 17 | Oct 17 | Unification | slides continued | Lect 17 | WA7: Regular Expressions | MP6 | 
|---|
| 18 | Oct 19 | Regular Expressions, Right Regular Grammars, OCamllex | slides(PPT)
             (Full PDF)
             (Six Up PDF) | Lect 18 | MP8: A Lexer for PicoML 
 | WA6 | 
|---|
| Week 10 | 
|---|
| 19 | Oct 24 |  |  |  |  |  | 
|---|
| 19 | Oct 24 | Ocamllex cont, BNF Grammars, Parsing | slides (PPT)
          (PDF)(full sized PDF)
          (6 up PDF) code (expr.ml)
           (exprlex.mll)
           (exprparse.mly)
 | Lect 19 | MP8 was given on 10/19 | MP7 | 
|---|
  | 20 | Oct 26 | Parse Trees, Ambiguous Grammars, Disambiguating Grammars Part 1, Ocamlyacc | slides (cont) | Lect 20 | WA8: Parse Trees | WA7 | 
| Week 11 | 
|---|
  | 21 | Oct 31 | LR Parsing, Action and Goto Tables | (PPT)
             (Full PDF)
             (Six Up PDF) | Lect 21 | MP9: A Parser for PicoML | MP8 | 
  | 22 | Nov 2 | Disambiguating Grammars, Part 2 | slides (Full PDF) | Lect 22 | WA9: Natural and Transition Semantics | WA8 | 
| Week 12 | 
|---|
  | 23 | Nov 7 | Natural Semantics | slides
    (PPT)
    (Full PDF)
    (Six Up PDF) | Lect 23 | MP10: An Evaluator for PicoML | MP9 | 
| 24 | Nov 9 | Day off for MT3 |  |  |  |  | 
|---|
|  | 11/9-11/11 |  | Covers Lecture 15-22 |  |  |  | 
|---|
| Week 13 | 
|---|
  | 25 | Nov 14 | Transition Semantics | slides continued from Lecture 23 | Lect 25 | MP11: A Transition Semantics Evaluator for CPS |  | 
  | 26 | Nov 16 | Intro to Lambda Calculus | slides   (PPT)
             (Full PDF)
             (Six Up PDF) | Lect 26 | WA10:Lambda Calculus | WA9 | 
| Week of Fall Break | 
|---|
  |  | Nov 21 | Thanksgiving |  |  |  |  | 
  |  | Nov 23 | Thanksgiving |  |  |  |  | 
| Week 14 | 
|---|
| 27 | Nov 28 |  |  |  |  |  | 
|---|
  | 27 | Nov 28 | Lambda Calculus - Evaluation | slides   (PPT)
             (Full PDF)
             (Six Up PDF) | Lect 27 | WA11: Hoare Logic | MP10 | 
  | 28 | Nov 30 | Intro to Axiomatic Semantics | slides:
    (PPT)
    (Full PDF)
    (Six Up PDF) extra slides:
     (PPT) 
     (Full PDF) 
    (Six Up PDF)
 | Lect 28 |  | WA10 | 
| Week 15 | 
|---|
| 29 | Dec 5 | Hoare Logic (cont) |  | Lect 29 |  | MP11 | 
|---|
|  | 
|---|
|  | Dec 6 | Last day of classes |  |  |  | WA11, WA3XC (late, max 80%) | 
|---|
| Finals Week | 
|---|
|  | Dec 12 | FINAL (7:00pm - 10:00pm) | Cummulative, with more weight on the last third |  |  |  | 
|---|