EECS 490: Programming Languages (Fall 2006)

Basic Information
Instructor Chandra Boyapati
GSI Paul Darga
Lectures M W 3:00-4:30, 3433 EECS
Chandra's Office Hours M 4:30-5:30, 4628 CSE (or by appointment)
Paul's Office Hours F 3:00-5:00, 4917 CSE / 1637 CSE (or by appointment)
Credits 4
For CS-ENGR and CS-LSA undergrads Counts as an upper-level CS technical elective
For CE undergrads Counts as a flexible technical elective and EECS elective
For CSE grads Counts as a software kernel course
Course Overview
This course covers basic and advanced topics in programming languages, and shows how good programming languages and tools can significantly improve the reliability of software systems.

Recommended Textbooks
Benjamin Pierce: Types and Programming Languages
Franklyn Turbak & David Gifford: Design Concepts in Programming Languages
Glynn Winskel: Formal Semantics of Programming Languages

Grading
70%: Individual Written and Programming Assignments
30%: Final Exam

Schedule

Introduction
L1 Sep 06 Course Overview
Functional Programming
L2 Sep 11 Scheme
L3 Sep 13 Scheme
L4 Sep 18 Scheme+
Software
Scheme+ (This only works with MIT/GNU Scheme version 7.7.90.)
L5 Sep 20 Syntax and Semantics
Reading
Turbak & Gifford: Chapters 1-3
L6 Sep 25 Syntax and Semantics
Reading
Turbak & Gifford: Chapters 1-3
Homework Due
Assignment 1
L7 Sep 27 Lambda Calculus
Reading
Pierce: Chapter 5 (Sections 5.1-5.2)
L8 Oct 02 Lambda Calculus
Reading
Pierce: Chapter 5 (Sections 5.1-5.2)
Homework Due
Assignment 2
Object-Oriented Programming and Type Systems
L9 Oct 04 Syntax & Semantics
Reading
Pierce: Chapter 3 (Sections 3.1-3.5)
L10 Oct 09 Semantics
Reading
Pierce: Chapter 3 (Sections 3.4-3.5)
Homework Due
Assignment 3
L11 Oct 11 Type Systems
Reading
Pierce: Chapter 8
Optional Reading
Pierce: Chapter 9
Fall Study Break
L12 Oct 23 Type System for Java Bytecodes
Homework Due
Assignment 4
--
Oct 25
No Class
Optional Reading
Check out OOPSLA 2006
L13 Oct 30 Java Tutorial
L14 Nov 01 Type System for Java
Homework Due
Assignment 5
L15 Nov 06 Type System for Java
Optional Reading
Cardelli: Type Systems
L16 Nov 08 Type System for Generic Java
--
Nov 13
No Class
Optional Reading
Check out PLDI 2006, POPL 2006.
L17 Nov 15 Type System for Generic Java
Homework Due
Assignment 6
L18 Nov 20 Types for Information Flow Control
L19 Nov 22 Concurrent Programming in Java
Happy Thanksgiving!
L20 Nov 27 Types for Preventing Data Races
L21 Nov 29 Type Safety for Legacy Code
Homework Due
Assignment 7
Program Verification
L22 Dec 04 Axiomatic Semantics
Reading
Winskel: Chapters 2, 6.1-6.4
L23 Dec 06 Axiomatic Semantics
Reading
Winskel: Chapters 6.5-6.7, 7.1-7.6
L24 Dec 11 Verifying Program Properties Using Theorem Provers
Conclusions
L25 Dec 13 Conclusions
Homework Due
Assignment 8
Final Exam: Dec 15, 4pm-6pm, 3427 EECS (Exam)


[Mail] [boyapati dot chandrasekhar at gmail dot com]

AltStyle によって変換されたページ (->オリジナル) /