15-312 Foundations of Programming Languages
| Spring 2011 |
| Karl Crary |
| Lecture, TuTh 1:30-2:50, PH 125C |
| Recitation Sec A, Wed 11:30-12:20, WEH 5302 (Harmata) |
| Recitation Sec B, Wed 12:30-1:20, DH 1217 (Sullivan) |
| 12 units |
This course covers many of the concepts underlying the
design, definition, implementation and use of modern programming
languages. We emphasize formal techniques to study a variety
of programming language paradigms, including functional, imperative,
concurrent, and object-oriented programming. The formal investigations
are complemented by programming assignments that illustrate how
to use and implement languages with radically different models
Prerequisites: 15-212 Principles of Programming.
- (24 Jan) Assignment 1 and notes for the first (cancelled)
|| Lecture schedule, readings, and code
|| Details of assignments, due dates, and policies
|| Libraries and hints on programming environment
|| Other course resources
The primary textbook for the class is Harper's
Practical Foundations for Programming Languages.
We may also make reference to Pierce's
Types and Programming Languages.
Practical Foundations for Programming Languages
The current working draft is available on
Prof. Harper's home
page and is revised frequently. To avoid confusion due to
differing page numbers the like, the "official" course revision
of the book is the revision as of January 11, 2011 at 11:40,
linked to above.
Benjamin C. Pierce,
Types and Programming Languages
, MIT Press, 2002.
|| 12 units
|| 50% Assignments, 20% Midterm Exam, 30% Final Exam
Programming assignments are 2 weeks each, given out and due on Thursday.
Written assignments are 1 week each, given out and due on Thursday before lecture.
Every students has 3 late days, to be used at any time during the semester.
TBA, in class.
The midterm will be open notes (closed internet).
The final will be open notes (closed internet).
| Staff Mailing List
|| Assignments are to be handed in to
|| Karl Crary
|| GHC 9217
|| Tu 5:00-6:00
| Teaching Assistant
|| Michael Sullivan
|| GHC 6111
|| Mon 3:00-4:00, Wed 2:00-3:00
| Teaching Assistant
|| Nathan Harmata
|| GHC 4122
|| Wed 4:00-5:00, Fri 2:30-3:30