Princeton University
Computer Science Department

Computer Science 441
Programming Languages

Daniel Wang

Fall 2004

Announcements


See the Whiteboard web page for annoucements

Administrative Information


Professor: Daniel Wang - 205 CS Building - 258-6484 danwang@cs.princeton.edu

Undergraduate Coordinator: Tina McCoy - 410 CS Building - 258-1746 tmmccoy@cs.princeton.edu

Course Summary

This course will cover the basic mathematical and practical foundations behind modern programming languages.

Lectures: MWF 1000-1050, Room: 302

Staff and Office Hours

Professor: Daniel Wang danwang@cs 205 CS Building 258-6484 Office Hours: Monday & Friday after class
TA: Frances Spalding frances@cs 316 CS Building 258-5386 Office Hours: Monday 1:30-2:30; Tuesday 3:30-4:30; by appointment

Textbooks


All three textbooks are required.
Programming Languages: Theory and Practice (Draft) Harper Pequod online
Concepts in Programming Languages Mitchell PU Store Errata
Elements of ML Programming, ML97ed Ullman PU Store errata, code, and solutions to starred exercises

Grading


Assignments 50% All assignments will be weighted equally.
Take-home Midterm 20%
Take-home Final 30%

Policies


Material:
You are responsible for all material presented in lecture and in the assigned reading.
Late Assignments
Late assignments will be penalized 20% per day. Extensions will be granted only in the case of illness (with a doctor's note) or extremely extenuating circumstances. If you do have an extremely extenuating circumstance, please discuss it with the professor as soon as possible.
Collaboration
You may discuss assignments with other students to better understand the problem and discover a path to its solution. (Cite the names of students you discussed a problem with.) Under no circumstances should you code or write up an assignment with another student.

Resources


Local Pages
Links

Schedule


Preliminary Schedule Subject to Change

Week 0 Introduction to COS 441
09/10 F Logistics, Overview, Motivations PPT PDF Read Ullman 1-2
Week 1 Inductive Definitions and Syntax
09/13 M Inductive Definitions PPT PDF Read Harper 1, Mitchell 5.1-5.3
09/15 W Introduction to Standard ML PPT PDF Read Ullman 3-3.4, 5.1, Mitchell 5.4-5.5
Assignment 1 (Due 09/15)
09/17 F Concrete and Abstract Syntax PPT PDF Read Ullman 6.1-6.2, Harper 3-4, Mitchell 4.1,4.2-4.2.3
(skip section titled "Lambda Abstraction in Lisp and Algol")
Week 2 Semantics
09/20 M Abstract Binding Trees and Static Semantics PPT PDF Read Harper 5-6,Ullman 8.1-8.2
09/22 W Dynamic Semantics PPT PDF Read Harper 2,7
Assignment 2 (Due 09/22)
09/24 F Soundness PPT PDF Read Harper 8
Week 3 Semantics of Mini-ML
09/27 M Semantics of Mini-ML PPT PDF Read Harper 9, Mitchell 6.1-6.2
09/29 W Type Saftey for Mini-ML PPT PDF Read Harper 10, Mitchell 2
Assignment 3 (Due 09/29)
10/01 F Scope, Functions Calls, and Storage Management PPT PDF Read Mitchell 7
Week 4 Abstract Machines
10/04 M Control Flow PPT PDF Read Harper 11.1
10/06 W Environments PPT PDF Read Harper 11.2
Assignment 4 (Due 10/06)
10/08 F Mutable State PPT PDF Read Ullman 7.3, Harper 14
Week 5 Advanced Control Features
10/11 M Exceptions and Continuations PPT PDF Read Mitchell 8
10/13 W Exceptions PPT Read Harper 13
Assignment 5 (Due 11/03)
10/15 F Continuations PPT PDF Read Harper 12
Week 6 Programming Languages in Practice (Midterms)
10/18 M Semantics of GML
Midterm (Due 5pm 10/22)
10/20 W From Abstract Machines to VM's in C Read Sample Code
10/22 F TBA
Fall Recess (10/23 - 10/31)
Week 7 Denotational Semantics
11/01 M Semantics of Regular Expressions PPT PDF Read Ullman 5.2, Mitchell 4.3, 4.4.2
11/03 W Semantics of Pictures PPT PDF Read Notes
Assignment 6 (Due 11/03)
11/05 F Denotational vs Operational PPT PDF Read Notes
Week 8 Types and Modularity
11/08 M Dynamic Typing PPT PDF (Midterm Grades) Read Harper 24
11/10 W Aggergate Structures PPT PDF Read Harper 19
Assignment 7 (Due 11/10)
11/12 F Data-Abstraction and Modularity PPT PDF Read Ullman 8.3, Mitchell 9
Week 9 Polymorphism and Subtyping
11/15 M Parametric Polymorphism PPT PDF Read Harper 20 (skip 20.2,20.3.2)
11/17 W Data Abstraction PPT PDF Read Harper 21
Assignment 8 (Due 11/17)
11/19 F Subtyping PPT PDF Read Harper 26
Week 10 Object-Oriented Programming
11/22 M Concepts PPT PDF Read Mitchell 10
11/24 W Java PPT PDF Read Mitchell 13
Assignment 9 (Due 12/08)
Thanksgiving (11/25 - 11/26)
Week 11 Understadning Java 5
11/29 M Java 5 Continued
12/01 W Featherweight Java PPT PDF Read Harper 25
12/03 F HOT Programming in Java PPT PDF Read Sample Code
Week 12 Advanced Topics
12/06 M Proofs are Programs PPT PDF Read 19th Century Logic and 21st Century Computing
12/08 W Study Hints for Final Exam PPT PDF (Course Evaluations)
12/10 F Typed Assembly Language PPT PDF (Frances will Present This Lecture)
Winter Recess (12/13 - 01/02)
Week 13 Final
01/03 M Take Home Final (Due 1/11/2005)
Final (Due 5pm 01/11)

Fun Links


Enjoy The Soundness
Compliments of the CSE band in University of Washington
ICFP Programming Contests
Lambda the Ultimate
Programming Languages WebLog