CSE505: Concepts of Programming Languages, Winter 2012

Course Information

Lecture: Tuesday, Thursday 9:00AM-10:20AM, MGH 231

Instructor: Dan Grossman, djg and then at and then cs.washington.edu, Allen Center 574
  Office hours: Wednesdays 2-3PM + by appointment + try coming by (please do visit!)

TA: Adrian Sampson, asampson and then at and then cs.washington.edu, Allen Center 352
  Office hours: Tuesdays 1:30-2:30PM + Fridays 3-4PM + by appointment

Lectures

Lecture Materials

  1. 1. Jan 3: Course Introduction   slides1up   slides6up
  2. X. Jan 3,5: Caml Tutorial   play.ml   foo.ml   foo.mli   bar.ml   slides-ppt   slides-pdf1up   slides-pdf6up
  3. 2. Jan 10: Syntax   slides1up   slides6up   proofs-txt
  4. 3. Jan 10,12: Operational Semantics   slides1up   slides6up   handout-pdf
  5. 4. Jan 12,17: Proofs About Operational Semantics   slides1up   slides6up   proofs-txt
  6. 5. Jan 17: Pseudo-Denotational Semantics   slides1up   slides6up   lec5code.tar
  7. X. Jan 19: Snow day (class cancelled by the university)
  8. 6. Jan 24: Little Trusted Languages; Equivalence   slides1up   slides6up   proofs-pdf
  9. 7. Jan 26: Lambda Calculus   slides1up   slides6up
  10. 8. Jan 31: Reduction Strategies; Substitution   slides1up   slides6up
  11. 9. Jan 31, Feb 2: Simply Typed Lambda Calculus   slides1up   slides6up
  12. 10. Feb 2: Type-Safety Proof   slides1up   slides6up   proofs-pdf
  13. X. Feb 7: Midterm
  14. 11. Feb 9, Feb 14: STLC Extensions and Related Topics   slides1up   slides6up
  15. 12. Feb 14, Feb 16: The Curry-Howard Isomorphism   slides1up   slides6up
  16. 13. Feb 16: Evaluation Contexts; 1st-Class Continuations; Continuation-Passing Style  slides1up  slides6up  code
  17. 14. Feb 21, Feb 23: Subtyping   slides1up   slides6up
  18. 15. Feb 23, Feb 28: Parametric Polymorphism   slides1up   slides6up
  19. 16. Feb 28, Mar 1: Shared-Memory Parallelism and Concurrency   slides1up   slides6up   code
  20. 17. Mar 1: Synchronous Message-Passing and Concurrent ML  1up-slides  6up-slides  code (.ml)  code (.mli)
  21. 18. Mar 6: Class-Based Object-Oriented Programming  1up-slides  6up-slides
  22. 19. Mar 6, 8: Types for OOP; Static Overloading and Multimethods  1up-slides  6up-slides
  23. 20. Mar 8: Bounded Polymorphism  1up-slides  6up-slides
  24. 21. Mar 8: Course Wrap-Up  1up-slides  6up-slides
Homeworks

Homework Assignments

Homework 0: on-line survey worth 0 points, "due" January 5

Dropbox for homework turn-in

Exams

Midterm: February 7, in class   unsolved   solved   reference sheet
  Sample midterms:
   2009   unsolved   solved
   2008   unsolved   solved
   2007   unsolved   solved
   2006   unsolved   solved
   2005   unsolved   solved

Final: Monday, March 12, 12:30-2:20, in EEB 045   unsolved   solved   reference sheets
  Sample final exams (see important note below):
   2009   unsolved   solved
   2008   unsolved   solved
   2007   unsolved   solved
   2006   unsolved   solved
   2005   unsolved   solved

Note: Our course covered moderately different material after the midterm compared to the courses that used the final exams above. In particular, we considered continuations and continuation-passing style in more depth, but did not cover recursive types, existential types, multiple inheritance, or prototype-based OOP. So ignore 2009 #4, 2008 #2, 2007 #2, 2006 #1, and 2005 #1. Also, 2006 #2 will look familiar because we had it as a homework problem. The 2005 exam used slightly different syntax for continuations.

Caml Information

  1. Runing Caml and Editing Caml in Emacs

  2. Caml home page
  3. The manual
  4. The O'Reilly book (free)
  5. Another free (for now) book

Valid CSS! Valid XHTML 1.1