CSE505: Concepts of Programming Languages, Fall 2012

Course Information

Lecture: Tuesday, Thursday 10:30AM-11:50AM, Room EEB 025

Instructor: Dan Grossman, djg and then at and then cs.washington.edu, Allen Center 574
  Office hours: Mondays 9:30-10:30AM + by appointment + try coming by (please do visit!)

TA: Zach Stein, steinz and then at and then uw.edu
  Office hours: Thursday 1:00-3:00PM Allen Center 216 + by appointment

Lectures

Lecture Materials

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

Homework Assignments

Homework 0: on-line survey worth 0 points, "due" September 27

Dropbox for homework turn-in

Exams

Midterm: October 30, in class   unsolved   solved
Sample midterms:
   Winter 2012   unsolved   solved
   Fall 2009   unsolved   solved
   Fall 2008   unsolved   solved
   Fall 2007   unsolved   solved
   Fall 2006   unsolved   solved
   Fall 2005   unsolved   solved

Final: Monday, December 10, 10:30AM-12:20PM   unsolved   solved
Sample finals (see important note below):
   Winter 2012   unsolved   solved
   Fall 2009   unsolved   solved
   Fall 2008   unsolved   solved
   Fall 2007   unsolved   solved
   Fall 2006   unsolved   solved
   Fall 2005   unsolved   solved

Note: Our course covered moderately different material after the midterm compared to prior courses. Compared to 2009 and earlier, we considered continuations and continuation-passing style in more depth, but did not cover recursive types, existential types, multiple inheritance, or prototype-based OOP. Compared to Winter 2012, we also covered data races in a bit more depth. 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 OCaml and editing OCaml in Emacs

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

Valid CSS! Valid XHTML 1.1