Monday, 2 March 2015

CSE341: Programming Languages, Winter 2013

CSE341: Programming Languages, Winter 2013

Course Information

Course Materials

Material in the future naturally subject to change in terms of coverage or schedule
  1. Unit 1: ML Functions, Tuples, Lists, and More    Reading Notes    Videos
  2.   L1. Jan 7-9: Course Mechanics, ML Variable Bindings   slides: pptx   pdf   pdf6up   code: sml
  3.   L2. Jan 9: Functions, Pairs, Lists   slides: pptx   pdf   pdf6up   code: sml
  4.   S1. Jan 10: Emacs, SML Mode, Shadowing, Error Messages   slides: pdf   pdf4up   code: errors.sml   solutions.sml
  5.   L3. Jan 11: Local Bindings, Options, Benefits of No Mutation   slides: pptx   pdf   pdf6up   code: sml
  7. Unit 2: Datatypes, Pattern Matching, Tail Recursion, and More    Reading Notes    Videos
  8.   L4. Jan 14: Records, Datatypes, Case Expressions   slides: pptx   pdf   pdf6up   code: sml
  9.   L5. Jan 16: More Datatypes and Pattern Matching   slides: pptx   pdf   pdf6up   code: sml
  10.   S2. Jan 17: Type Synonyms, Polymorphism, & More   slides:   pptx   pdf   code:   synonyms.sml   generics.sml  equality.sml   fun_patterns.sml
  11.   L6. Jan 18: Nested Pattern-Matching, Exceptions, Tail Recursion   slides: pptx   pdf   pdf6up   code: sml 
    Tail recursion moved to Jan 23 after the Jan 21 holiday
  13. Unit 3: First-Class Functions and Closures    Reading Notes    Videos
  14.   L7. Jan 23: First-Class Functions   slides: pptx   pdf   pdf6up   code: sml
  15.   S3. Jan 24: Standard-Library Docs, Unnecessary Function Wrapping, Map, & More   slides: pdf   pdf4up   code:sec3.sml   higher-order.sml
  16.   L8. Jan 25: Lexical Scope and Function Closures   slides: pptx   pdf   pdf6up   code: sml
  17.   L9. Jan 28: Function-Closure Idioms   slides: pptx   pdf   pdf6up   code: sml
  19. Unit 4: ML Modules, Type Inference, Equivalence, & More    Reading Notes    Videos
  20.   L10. Jan 30: ML Modules   slides: pptx   pdf   pdf6up   code: sml
  21.   S4. Jan 31: Mutual Recursion, More Currying, More Modules   slides:   pptx   pdf   code:   all_pairs.sml   bank.sml  mutual_rec.sml
  22.   L11. Feb 1: Type Inference   slides: pptx   pdf   pdf6up   code: sml
  23.   L12. Feb 4: Equivalence   slides: pptx   pdf   pdf6up
  25. Course-Motivation Interlude, Feb 4-6  slides  pdf  pdf6up   Videos
  27. Unit 5: Racket, Delaying Evaluation, Memoization, Macros    Reading Notes    Videos
  28.   L13. Feb 6-11: Racket Introduction   slides: pptx   pdf   pdf6up   code: rkt
  29.   S5. Feb 7 <Midterm Review for Midterm on Feb 8>
  30.   L14. Feb 13: Thunks, Laziness, Streams, Memoization   slides: pptx   pdf   pdf6up   code: rkt
    Some of the material in L14 is covered in S6 instead
  31.   S6. Feb 14: More streams, memoization, etc.   slides: pdf   pdf6up   code: sec6.rkt   streams.rkt
  32.   L15. Feb 15: Macros   slides: pptx   pdf   pdf6up   code: rkt
  34. Unit 6: Structs, Implementing Languages, Static vs. Dynamic Typing    Reading Notes    Videos
  35.   L16. Feb 15-20: Datatype-Style Programming With Lists or Structs   slides: pptx   pdf   pdf6up   code: rkt   sml
  36.   L17. Feb 20-22: Implementing Languages Including Closures   slides: pptx   pdf   pdf6up   code: rkt
    Some of the material in L17 is covered in S7 instead
  37.   S7. Legal ASTs, Macros as Functions, and More   slides: pdf
  38.   L18. Feb 22-25: Static vs. Dynamic Typing   slides: pptx   pdf   pdf6up   code: rkt   sml
  40. Unit 7: Ruby, Object-Oriented Programming, Subclassing    Reading Notes    Videos
  41.   L19. Feb 27: Introduction to Ruby and OOP   slides: pptx   pdf   pdf6up   code: lec19_silly.rb   lec19_example.rb
  42.   S8. Ruby arrays, hashes, ranges, blocks, and more slides   (See also material posted with L20.)
    Some of the material in L20 is covered in S8 instead
  43.   L20. Mar 1-4: Arrays & Such, Blocks & Procs, Inheritance & Overriding   slides: pptx   pdf   pdf6up   code: rb
  44.   L21. Mar 4-6: Dynamic Dispatch Precisely, and Manually in Racket   slides: pptx   pdf   pdf6up   code: rb   sml   rkt
  46. Unit 8: Program Decomposition, Mixins, Subtyping, and More    Reading Notes    Videos
  47.   L22. Mar 6-8: OOP vs. Functional Decomposition; Adding Operators & Variants; Double-Dispatch 
       slides: pptx   pdf   pdf6up   code stage A:   sml   rb   java   code stage B:   sml   rb   java   code stage C:   sml   rb   java
  48.   S9. Mar 7: Double-Dispatch, Expression Problem, Mixins, and Visitors   slides: pdf   pdf6up   code: janken.rb  janken.sml   helpers.sml   mixins.rb   visitor.rb   visitor.sml
  49.   L23. Mar 8: Multiple Inheritance, Mixins, Interfaces, Abstract Methods   slides: pptx   pdf   pdf6up   code: rb
  50.   L24. Mar 11-13: Subtyping   slides: pptx   pdf   pdf6up
  51.   L25. Mar 13: Subtyping for OOP; Comparing/Combining Generics and Subtyping   slides: pptx   pdf   pdf6up
  52.   S10. Mar 14: Review, Especially Subtyping   slides: pdf   counter-examples
  54. L26. Mar 15: Course Victory Lap   slides: pptx   pdf   pdf6up

No comments:

Post a Comment