CSE 505: Concepts of Programming Languages
Autumn 2003
This is not the page for
P505, available the same quarter.
Meetings: TTh 10:30-11:50, building EE1 room 037
Instructor:
Dan Grossman,
(careful: grossman@cs goes to a different
person),
Allen Center 556
TA: Andy Collins,
acollins@cs.washington.edu,
Allen Center 302
Office hours: |
Grossman: Tuesday 2-3 and by appointment
Andy: Friday 2-3 and by appointment
|
Mailing list: Students must subscribe
to cse505@cs.washington.edu
Syllabus
Homework
Turnin instructions
- HW1, due 14 October (assignment,
O'Caml files, tar
instructions)
(sample solution, grading notes)
- HW2, due 28 October (assignment,
O'Caml files
solution and grading notes)
- HW3, due 13 November (tarball,
solution and grading notes)
- HW4, due 25 November (tarball,
solution and grading notes)
- HW5, due 9 December (assignment,
solution and grading notes)
Lecture Material (print pdf slides in landscape mode)
- Course Introduction, Abstract Syntax
- O'Caml Primer
- Operational Semantics for IMP
- Denoting IMP Programs with O'Caml (O'Caml code)
- Operational Equivalence for IMP
(slides, proofs)
- Lambda, Lambda, Lambda
- Simply-Typed Lambda and its Soundness
- Simple Extensions to STLC
- Termination of STLC (take/borrow notes, see the book, or implore
me to type up my notes)
- Introduction to polymorphism; Subtyping
- Universally quantified types (Parametric
polymorphism)
- Type variables continued (recursive and
abstract types) (code example)
- ADT/Polymorphism wrap-up / References
- References, Exceptions, Intro to OOP
(text, slides)
- Class-Based OOP continued
(slides are an extension of last lecture's slides; you can make your
own joke about width subtyping)
- Advanced Concepts in OOP
- Bounded Polymorphism and Classless OOP
- Summary, A Brief Tour of Everything Else, and Shameless Plugs
O'Caml Information
O'Caml is installed in Linux /uns (albeit in /uns/share/bin rather
than /uns/bin as one might expect). See the /uns
FAQ for information on using /uns software if you haven't already
done so.
Last updated: 10 December 2003