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