## Computer Science 441 Programming Languages David Walker

### Fall 2007

The course final exam is here You may choose any 24-hour time period between Thurs. Jan 8-Tues Jan 13 at 4:30pm to complete the exam.

Here is an approximate schedule for COS 441.  This schedule is only approximate and may be changed at any time.

 Week Topics Reading Notes/Assignments 1 [sep 12-19] Course Introduction Deductive Systems Pierce Chap 2 (especially 2.4) Pierce Chap 3.1-3.3 Lecture1 Assignment #1:  Deductive Systems (Due Wed Sept 24) 2 [sep 22-26] Proofs by Induction ML intro/Programming with Deductive Systems Example Proofs SML-NJ Intro Example: Natural Numbers Assignment #2:  More Deductive Systems and Proofs (Due Wed Oct 1) 3 [sep 29-oct 3] Untyped Lambda CalculusTranslations Pierce Chap 5.1, 5.2 ML Links: error messages, getting started with SML at Princeton + mode for emacs, tutorials, getting started tutorial, Robert Harper's "Programming in Standard ML", library documentation lambda calculus slides translations slides Assignment #3, a3code (Due Wed Oct 1) 4 [oct 6-10] Free & Bound Variables Substitution Proofs Pierce Chap 5.3 substitution slides Assignment #4, a4code (Due Wed Oct 15) 5 [oct 13-17] Type Systems Pierce Chap 8.1, 8.2, 9.1, 9.2, 9.4 Pierce Chap 8.3, 9.3 Assignment #5 (Due Fri Oct 25) 6 [oct 20-24] Type Safety Pierce Chap 11 Fall Break 7 [nov 3-7] Pair types and Sum types Curry-Howard Isomorphism Evaluation Contexts Pierce Chap 11 Midterm: 5 hour take-home exam 8 [nov 10-14] Evaluation Contexts Pattern Matching notes on evaluation contextsAssignment #6 (pdf, lam.sml, test.sml) 9 [nov 17-21] Polymorphism Type Inference Pierce Chap 22,23 Type Inference Slides Type Inference II Slides 10 [nov 24-28] Existential Types Recursive Types Pierce Chap 24.1 (the notation is a little different than what we used in class -- not required reading, see notes) Pierce Chap 20.1, 20.2 Existential Notes 11 [dec 1-5] Mutable References TinyC Pierce Chap 13 Assignment #7 (pdf, polylam.sml)Tiny C Notes 12 [dec 8-12] Advanced Topics:Stack Inspection Lambda Zap 24-hour Take-home Final Exam covering all topics;  you will have 24 hours to do the Final You may choose any 24-hour time period between Thurs. Jan 8-Tues Jan 13 at 4:30pm.