CSE P505: Programming Languages
Winter 2009
Preliminaries
Join the course mailing list
Homework 0 "due" January 13, worth zero points
Course Information
Syllabus
Challenge-Problem Policy
Advice on approaching P505 homework
Meetings: Thursdays 6:30-9:20PM, Allen Center Room 305 and
Microsoft Building 99, Room 1915
Discussion Board
Course Staff
You can reach the entire staff at csep505staff then @ and then
cs.washington.edu.
The userids following each name below are also for
cs.washington.edu.
Instructor: Dan Grossman, djg, Allen Center 556
TA: Dang-Trinh Huynh-Ngoc, trinh
TA: Laura Effinger-Dean, effinger
TA: Benjamin Wood, bpw
Anonymous Feedback
Exam Information
Sample problems:
Without solutions
With solutions
Reference pages
Our exam:
Without solutions
With solutions
Homework
Turn-in link
Homework 1, due 22 January
hw1.pdf hw1.ml
Homework 2, due 5 February
hw2.pdf
logo.pdf
imp.ml
logo.ml
Sample solutions: impSolve.ml
logoSolve.ml
Homework 3, due 19 February
hw3.pdf
hw3.tar
Sample solutions: hw3solve.zip
Homework 4, due 5 March
hw4.pdf
lang.pdf
hw4code.tar
Sample solutions: prob1.ml
stlc.ml adversary.ml
prob4.ml
Homework 5, due 12 March
hw5.pdf
hw5.ml
hw5.mli
Makefile
Sample solution: hw5solve.ml
Class Materials
Video Archives
1. Course Introduction; Caml Tutorial
slides
code
2. Functional programming; Syntax; Interpreters
slides
code
3. Small-step interpreter, semantics via translation, state-passing,
introduction to lambda-calculus
slides
code
4. Untyped lambda-calculus; Formal operational semantics
slides
5. Continuations; Types
slides
6. Types, Types, More Types
slides
7. Subtyping, Type Variables
slides
8. Wrap-up Types; Start Concurrency
slides
9. Finish Concurrency; Start OOP
slides
10. Finish OOP; Memory Management
slides
Caml Information
Caml home page
The manual
The O'Reilly book (free)
Running Caml locally
Emacs mode: caml_emacs.tgz contains
exactly the code Dan uses. The Web may have more recent
stuff.