|  |  | 
 CS 510: Schedule(subject to change at any time) 
  
    | Week | Topic | Reading | Notes |  
    | 1 | introduction; ML | introduction
      to ML using
      SML/NJ | introduction,
      ML1, ML2   |  
    | 2 | inductive definitions; syntax, scope, substitution | Harper 1,3,4,5 | inductive def,
      syntax,  hoas |  
    | 3 | MinML; static and dynamic semantics; type
      safety | Harper 6,7,8,9 | MinML
      statics, MinML dynamics, MinML_safety |  
    | 4 | products; sums; recursive types;
      dynamic typing | Harper 19, 24 | sum/prod,
      rec_type,  dynamic_types |  
    | 5 | abstract machines; MinML
      references; | Harper 11, 14 | abst
      machines, effects |  
    | 6 | tinyC;
      exceptions; continuations; CPS; co-routines | Harper 10, 13 | tinyC, continuations,
      co-routines |  
    | mid-term break |  |  |  |  
    | 7 | midterm handed
      out;  PolyMinML | Harper 20 | poly |  
    | 8 | existential types; data abstraction;
      type inference | Harper 21, 30 | adts,
      exists, type
      inference 1 |  
    | 9 | type inference; subtyping; coercions | Harper 26, Pierce notes | type
      inference 2;  MinML subtyping; coercions |  
    | 10 | Java and Featherweight Java | Harper 25, 27, Pierce notes | inheritence;
      FJ |  
    | 11 | concept review; concurrency | Reppy notes | midterm
      review; concurrency |  
    | 12 | concurrency; Curry-Howard isomorphism | Reppy notes; Wadler Paper | cml programming;
      cml impl.; proofs-programs |  Acknowledgement:  Most of the notes listed above are taken directly from
a course taught by Robert Harper at
Carnegie Mellon University.  I greatly appreciate Bob's generous donation
of these resources. 
 |