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 of computation.

Prerequisites: 15-212 Principles of Programming.

What's New?

  • (24 Jan) Assignment 1 and notes for the first (cancelled) recitation posted.

Class Material

Schedule Lecture schedule, readings, and code
Assignments Details of assignments, due dates, and policies
Software Libraries and hints on programming environment
Resources Other course resources

Course Information

Textbook 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.


Robert Harper, 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.
Credit 12 units
Grading 50% Assignments, 20% Midterm Exam, 30% Final Exam
Assignments 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.
Midterm TBA, in class.
The midterm will be open notes (closed internet).
Final TBA.
The final will be open notes (closed internet).
Newsgroups news:academic.cs.15-312
Staff Mailing List staff-312@lists.andrew
Directories Assignments are to be handed in to /afs/andrew/course/15/312-sp11/handin/andrewid/assnN/

Teaching Staff

    Office Office Hours Phone Email
Lecturer Karl Crary GHC 9217 Tu 5:00-6:00 x8-7687 crary@cs
Teaching Assistant Michael Sullivan GHC 6111 Mon 3:00-4:00, Wed 2:00-3:00 mjsulliv@andrew
Teaching Assistant Nathan Harmata GHC 4122 Wed 4:00-5:00, Fri 2:30-3:30 nharmata@andrew

[ Home | Schedule | Assignments | Software | Resources ]