- Syllabus
- Challenge-Problem Policy
- Gradebook
- Course Email List (mandatory)
- Course Discussion Board (optional)
- Anonymous Feedback (goes only to the instructor)

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

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

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

- Homework 1 due Wednesday January 18, 11:00PM hw1.pdf hw1.tar
- Homework 2 due Wednesday February 1, 11:00PM hw2.pdf hw2.tar
- Homework 3 due Friday February 17, 11:00PM hw3.pdf hw3.tar
- Homework 4 due Tuesday February 28, 11:00PM hw4.pdf problem2.tar problem5.tar
- Homework 5 due Thursday March 8, 11:00PM hw5.pdf hw5.tar
- Technical-Perspective Writing Assignment, stage 2 due March 4, stage 3 due March 9

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.
**