Homework 1, due 14 October
hw1.pdf
hw1.tar
HW 1 test files
HW 1 solution files
Homework 2, due 28 October
hw2.pdf
hw2.tar
HW 2 solution files
Homework 3, due 14 November
hw3.pdf
hw3.tar
HW 3 solution files
Homework 4, due 29 November
hw4.pdf
hw4.tar
Continuation test
HW 4 solution files
Homework 5, due 9 December
hw5.pdf
hw5.tar
HW 5 solution files
1. Sept 29: Caml Tutorial
2. Oct 4: Course Intro, Abstract Syntax
3. Oct 6: IMP Operational Semantics
4. Oct 11: IMP Pseudo-Denotational Semantics slides code
notes from class
X. Oct 13: No class
5. Oct 17: Little Trusted-Languages; Equivalence slides full-proofs
6. Oct 19: Untyped Lambda-Calculus; Lambda-Encodings
7. Oct 25: Substitution; Simply-Typed Lambda Calculus
8. Oct 27: Extensions to Simply-Typed Lambda-Calculus
9. Nov 1: More Extensions, Anonymous Types, Termination
10. Nov 3: Curry-Howard; Evaluation Contexts, Stacks, Abstract Machines
slides code
X. Nov 8: Midterm, in class
11. Nov 10: Introduction to polymorphism; Subtyping
12. Nov 15: Universally quantified types (Parametric polymorphism)
13. Nov 17: Recursive types; Abstract types
slides code
14. Nov 22:
Polymorphism Wrap-up; Exceptions; References; Polymorphic
References; C-Style Pointers
X. Nov 24: Thanksgiving
15. Nov 29: Class-based OOP
16. Dec 1: Advanced Concepts in OOP
17. Dec 6: Bounded Polymorphism and Classless OOP
18. Dec 8: Summary, A Brief Tour of Everything Else, and Shameless Plugs
Our final:
without solutions
with solutions
Sample Final (from Fall 2003):
without solutions
with solutions
Our midterm:
without solutions
with solutions
Sample Midterm (from Fall 2003):
without solutions
with solutions
Caml home page
The O'Reilly book (free!)
Running Caml locally
Emacs mode: caml_emacs.tar.gz contains
exactly the code Dan uses. The Web may have more recent
stuff.
Join the course mailing list
Homework 0 ("due" October 4, worth 0 points)