CSE 505: Concepts of Programming Languages

Fall 2009

Course Information

Syllabus
Challenge-Problem Policy
Instructor: Dan Grossman, djg followed by @ and then cs.washington.edu, Allen Center 556
   Office hours: Wednesdays 1:30-2:30 and by appointment and just come by
TA: Salvatore Guarnieri sammyg followed by @ and then cs.washington.edu, Allen Center 315
   Office hours: Mondays 2:00-3:00 and by appointment and just come by

Homework

  1. Homework 1, due October 16   hw1.pdf   hw1.tar
  2. Homework 2, due October 30   hw2.pdf   hw2.tar
  3. Homework 3, due November 18   hw3.pdf   hw3.tar
  4. Homework 4, due December 2   hw4.pdf   hw4.tar
  5. Homework 5, due December 11   hw5.pdf   hw5.tar

Exams

Midterm: November 5, in class   unsolved   solved
 Sample midterms:  2008  unsolved   solved  2007  unsolved   solved  2006  unsolved   solved  2005  unsolved   solved

Final: Monday December 14, 10:30-12:20     unsolved   solved
 Sample finals:  2008  unsolved   solved  2007  unsolved   solved  2006  unsolved   solved  2005  unsolved   solved

Class Materials

  1. 1. Oct 1: Course Introduction and Caml Tutorial
  2. 2. Oct 6: Caml Tutorial and Abstract Syntax
  3. 3. Oct 8: Operational Semantics
  4. 4. Oct 13: Proofs; Pseudo-Denotational Semantics   proofs   code
  5. 5. Oct 15: Little Trusted Languages; Equivalence   proofs
  6. 6. Oct 19: Lambda Calculus
  7. 7. Oct 21: Reduction Strategies; Substitution; Simply Typed Lambda Calculus
  8. 8. Oct 26: Type-Safety Proof; Start Extensions to STLC   type-safety proof
  9. 9. Oct 28: More STLC Extensions and Related Topics
  10. 10. Nov 3: Extensions Wrap-Up; Curry-Howard Isomorphism; Evaluation Contexts and Continuations
  11. X. Nov 5: Midterm
  12. 11. Nov 10: Lambda Interpeters; Polymorphism; Subtyping   code
  13. 12. Nov 12: More Subtyping; Parametric Polymorphism
  14. 13. Nov 17: More Parametric Polymorphism; Recursive and Existential Types   code
  15. 14. Nov 19: Effect Systems; Concurrency; Shared Memory   code
  16. 15. Nov 24: Concurrency and Message-Passing   lec15.ml   lec15.mli
  17. 16. Dec 1: Object-Oriented Programming
  18. 17. Dec 3: Advanced Concepts in OOP
  19. 18. Dec 8: Bounded Polymorphism and Classless OOP
  20. 19. Dec 10: Course Summary and Wrap-Up

Caml Information

  1. Caml home page
  2. The manual
  3. The O'Reilly book (free)
  4. Another free (for now) book
  5. Running Caml locally
  6. Emacs mode: caml_emacs.tgz contains exactly the code Dan uses. The Web may have more recent stuff.

Preliminaries

  1. Course email list
  2. Homework 0, "due" October 5, worth 0 points

Valid CSS! Valid XHTML 1.1