15-312 Foundations of Programming Languages

Course Information, Spring 2015

Lectures: Tuesday and Thursday 13:30-14:50, GHC 4215
Recitation A: Wednesday 11:30-12:20, Wean Hall 5302
Recitation B: Wednesday 12:30-13:20, Wean Hall 5302
Office hours: See Staff page

This course is also listed as 15-652 Foundation Programming Languages.


This course introduces the fundamental principles of programming language design, semantics, and implementation. Our goal is to examine the fundamental structure of programming languages from a mathematical perspective.

Lecture and Recitation

Please see the calendar for the lecture topics and links to the references and notes. The schedule is subject to change during the course of the semester.

Lecture is your primary source of information in this course, with recitation serving to amplify and reinforce the main concepts in the course. The course notes and texts are supplementary to lecture, rather than the primary sources of information. You are strongly urged to attend lecture and recitation every week, and are in any case responsible for the material presented therein.

Recitations are held weekly on Wednesdays. Attendance at recitation will be recorded, and, from time to time, quizzes with recorded grades may be given in recitation. These will not directly count to your grade but will be taken into account at the end of the semester (see course policies for details).


Please see the assignments page for more information on submitting homework and for the current assignments.

Homework will account for 50% of your grade in this course.



There will be a 80-minute, in-class, open-book midterm examination that will account for 20% of your grade.


There will be a three-hour, open-book final examination that will account for 30% of your grade.


For the most part we will follow Harper's textbook, but we also recommend Pierce's Types and Programming Languages and may make reference to it.


Robert Harper, Programming Languages: Theory and Practice . It can be bought directly via Cambridge University Press or on Amazon and is available online here.


Benjamin C. Pierce, Types and Programming Languages , MIT Press, 2002.

Valid CSS! Valid XHTML 1.0 Strict