Princeton University
Computer Science Department

Computer Science 441
Programming Languages

David Walker

Fall 2007


Home Page                                         Notes & Assignments


 

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

How to structure proofs

Lecture1

Exercise 1

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 Calculus

Translations

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 contexts

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

 

Stack Inspection Notes

Lambda Zap Notes

  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.