| 
            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 26 | 
  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 28  | 
  Ocaml Boolean, Tuples, Functions, Closures  | 
  
  slides continued from Lecture 1
   | 
  
    
      Lect 2
    
   | 
  
    
      WA1: Evaluation and Evironments
    
   | 
   | 
  
| Week 2   | 
| 3 | Sep 2 | 
  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 | Sep 4 | 
Higher-Order Functions, Pattern Matching and Recursion over Lists | 
    slides continued from Lecture 3
 | 
  
    
      Lect 4
    
   | 
  
    
      WA2: Evaluating the Application of a Function
    
   | 
  WA1 | 
  
| Week 3   | 
| 5 | Sep 9 | 
Lists, List Pattern Matching, Recursion over Lists, Structural Recursion | 
  
    
     (PPT)
             (full sized PDF)
             (6 up PDF)
   | 
  
    
      Lect 5
    
   | 
  
    
      MP3: Patterns of Recursion, Higher-order Functions
    
   | 
   | 
| 6 | Sep 11 | 
 
    
   | 
   | 
   | 
   | 
  MP2 | 
| 6 | Sep 11 | 
   Forms of Recursion and Higher-Order Recursive Operators | 
  
slides continued from Lecture 5
   | 
  
    
      Lect 6
    
   | 
  
    
      WA3XC: Order of Evaluation  | 
    WA2  | 
  
| Week 4   | 
| 7 | Sep 16 | 
  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 18 | 
  Continuation Passing Style (CPS) Transformation | 
   slides continued from Lecture 7
   | 
  
    
      Lect 8
    
   | 
  
    
      WA4: CSP Transformation; Working with Mathematical Specifications | 
  WA3XC (full cr) | 
| Week 5   | 
  | 9 | Sep 23 | 
  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
    
   | 
  MP4 | 
  
  | 10 | Sep 25 | 
  Recursive Data Types in OCaml | 
   slides continued from Lecture 9  | 
  
    
      Lect 10
    
   | 
  WA4 was given 9/18
   | 
   | 
 | 9/25-9/27 | 
 
    
   | 
  Covers through Leture 7 | 
   | 
   | 
   | 
| Week 6   | 
| 11 | Sep 30 | 
  Types and Type Systems  | 
  
    slides (PPT)
           (full sized PDF)
           (6 up PDF)
   | 
  
    
      Lect 11
    
   | 
   | 
   | 
| 12 | Oct 2 | 
  Type Derivation | 
   slides continued from Lecture 11  | 
  
    
      Lect 12
    
    | 
  
    
      WA5: Polymorphic Type Derivation
   | 
  WA4 | 
| Week 7   | 
| 13 | Oct 7 | 
 
    
   | 
   | 
   | 
   | 
  MP5 | 
| 13 | Oct 7 | 
  Monomorphic and Polymorphic Type Derivation | 
  
    slides (PPT)
             (full sized PDF)
             (6 up PDF)
   | 
  
    
      Lect 13
    
   | 
  
    
      MP6: A Unification-Based Type Inferencer | 
   |  
  | 14 | Oct 9 | 
  Polymorphic Type Derivation | 
  
    slides 
           (PPT)
           (full sized PDF)
           (6 up PDF)
   | 
  
    
      Lect 14
    
   | 
  
    
      WA6: Incremental Unification Algorithm
   | 
  WA5 | 
| Week 8   | 
  | 15 | Oct 14 | 
  Type Inference | 
  
  slides continued from Lecture 14
   | 
  
    
      Lect 15
    
   | 
  
    
      MP7: Unification Algorithm | 
   | 
  | 16 | Oct 16 | 
  Day Off for MT2 | 
   | 
   
   | 
   | 
   | 
 | 10/16-10/18 | 
 
    
   | 
  Covers Lecture 8 - 14 | 
   | 
   | 
   | 
| Week 9   | 
| 17 | Oct 21 | 
  Unification  | 
  
    slides(PPT)
             (Full PDF)
             (Six Up PDF)
   | 
  
    
      Lect 17
    
   | 
  
    
      WA7: Regular Expressions
    
   | 
  MP6 | 
| 18 | Oct 23 | 
 Regular Expressions, Right Regular Grammars, OCamllex | 
  
slides continued
    
   | 
  
    
      Lect 18
    
   | 
  
    
      MP8: A Lexer for PicoML
     
   | 
  WA6 | 
| Week 10   | 
| 19 | Oct 28 |  
    
   | 
   | 
   | 
   | 
  MP7 | 
| 19 | Oct 28 | 
    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 10/23 | 
   | 
  | 20 | Oct 30 | 
  
Parse Trees, Ambiguous Grammars, Disambiguating Grammars Part 1, Ocamlyacc | 
  
    slides (cont)
       
     | 
  
    
      Lect 20
    
   | 
   
    
      WA8: Parse Trees
    
   | 
  WA7 | 
| Week 11   | 
  | 21 | Nov 4 | 
  LR Parsing, Action and Goto Tables | 
   
        (PPT)
             (Full PDF)
             (Six Up PDF)      
   | 
  
    
      Lect 21
    
   | 
  
    
      MP9: A Parser for PicoML
    
   | 
  MP8 | 
  | 22 | Nov 6 | 
  
    Disambiguating Grammars, Part 2
   | 
  
    
             slides (Full PDF)
 | 
  
    
      Lect 22
    
   | 
  
    
      WA9: Natural and Transition Semantics | 
  WA8 | 
| Week 12   | 
  | 23 | Nov 11 | 
  Natural Semantics | 
  
    slides
    (PPT)
    (Full PDF)
    (Six Up PDF)
   | 
  
    
      Lect 23
    
   | 
  
    
      MP10: An Evaluator for PicoML
    
   | 
  MP9 | 
| 24 | Nov 13 | 
Day off for MT3 | 
 | 
   | 
   | 
   | 
 | 11/13-11/15 | 
 
    
   | 
  Covers Lecture 15-22 | 
   | 
   | 
   | 
| Week 13   | 
  | 25 | Nov 18 | 
  Transition Semantics | 
   slides continued from Lecture 23
   | 
  
    
      Lect 25
    
   | 
  
    
      MP11: A Transition Semantics Evaluator for CPS
    
   | 
   | 
  | 26 | Nov 20 | 
  Intro to Lambda Calculus | 
  
    
    slides   (PPT)
             (Full PDF)
             (Six Up PDF)
 | 
  
    
      Lect 26
    
   | 
  
    
      WA10:Lambda Calculus
    
   | 
  WA9 | 
|  Week of Fall Break   | 
   | Nov 25 | 
  Thanksgiving | 
   | 
   | 
   | 
   | 
   | Nov 27 | 
  Thanksgiving | 
   | 
   | 
   | 
   | 
| Week 14   | 
  | 27 | Dec 2 | 
Lambda Calculus - Evaluation |  
  
  slides   (PPT)
             (Full PDF)
             (Six Up PDF)
   | 
  
    
      Lect 27
    
   | 
  
    
      WA11: Hoare Logic
   | 
  MP10 | 
  | 28 | Dec 4 | 
  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 9 | 
  Hoare Logic (cont) | 
   
   | 
  
    
      Lect 29
    
   | 
   | 
  MP11 | 
|  End of Classes   | 
 | Dec 10 | 
  Last day of classes | 
   | 
   | 
   | 
  WA11, WA3XC (late, max 80%) | 
|  Finals Week   | 
 | Dec 16 | 
FINAL (8:00am - 11:00am) | 
  Cummulative, with more weight on the last third | 
   | 
   | 
   |