15-312 Principles of Programming Languages


Course Information

Class

Lectures: Tue-Thu 10:30-11:50 1212 Doherty Hall
Section A: Wed 12:30-13:20 1209 Doherty Hall Arbob Ahmad
Section B: Wed 13:30-14:20 1209 Doherty Hall Neel Krishnaswami
Midterm Exam: Thu Mar 5 10:30AM 1212 Doherty Hall In class, open book
Final Exam: Mon May 11 13:00PM TBA Three hours, open book

Course Staff and Office Hours

Instructor: Robert Harper 7113 Wean Hall Thursday 12:00-1:00
Secretary: April Foster 7114 Wean Hall
TA: Arbob Ahmad 4301G Doherty Hall Monday 16:00-17:00
TA: Neel Krishnaswami 8122 Wean Hall Tuesday 16:00-17:00
Mail the TAs: 15-312tas at cs.cmu.edu
Bulletin Board: academic.cs.15-312

This course will be offered simultaneously in Qatar; please see their course home page for more information.

Description

This course introduces the fundamental principles of programming language design, semantics, and implementation. For more information on the course philosophy, read Why Study Programming Languages?.

Lecture and Recitation

Please see the schedule of lectures 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. See Grading for how recitation counts towards your grade.

Homework

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

There will be four programming assignments, each of two weeks duration, and four written assignments, each of one week duration. Homework will account for 50% of your grade in this course.

Examinations

Midterm

There will be a 1.5-hour, in-class, open-book midterm examination on Mar 5, 2009 that will account for 20% of your grade. You may wish to review last year's midterm or spring 07 (solutions 08 and solutions 07)to get an idea of what to expect. Here are the solutions to this year's exam.

Final

There will be a three-hour, open-book final examination on Monday May 11, 2009 from 1pm to 4pm that will account for 30% of your grade. You may wish to review final 07 (solutions 07) to get an idea of what to expect.

Grading

Homework will account for 50% of your grade, the midterm 20%, and the final 30%. Your final letter grade will be determined in part based on your performance relative to the rest of the class, though we have no pre-determined curve in mind. We will also consider extra credit on the assignments and participation in recitation and lecture when determining final grades. Extra credit and participation do not count towards your numeric average, but, for example, they might cause a student on the border to receive an A instead of a B (or vice versa!).

Academic Integrity

As a condition for taking this course, you are responsible for compliance with the University Policy on Academic Integrity and Plagiarism.

In this course, you are authorized to use the books and notes linked from this Web site, as well as any other sources specifically allowed by the course staff. Any other source is unauthorized.

You are allowed to discuss homework assignments with other students. However, in order to ensure that the work you submit is still your own, we insist that you adhere to a whiteboard policy regarding these discussions: you are not allowed to take any notes, files, or other records away from the discussion. For example, you may work on the homework at the whiteboard with another student, but then you must erase the whiteboard, go home, and write up your solution individually. We take your ability to recreate the solution independently as proof that you understand the work that you submit.

This policy is our attempt to balance the tension between the benefits of group work and the benefits of individual work. We ask that you obey the spirit of the policy, as well as the letter: ensure that all work you submit is your own and that you fully understand the solution. This is in your best interest: the exams constitute a significant part of your final grade, they will be timed, and they will draw heavily on the terminology, concepts, and techniques that are exercised in in the homework. It is unlikely that you will be able to do well on the exams if you do not take full advantage of the learning opportunity afforded by the homework assignments.

Texts

We will follow Harper's draft book, but may also make reference to Pierce's Types and Programming Languages.

Primary

Robert Harper, Practical Foundations for Programming Languages , The current working draft is available on Prof. Harper's home page. The draft is revised frequently; please be sure to keep up-to-date!

Secondary

Benjamin C. Pierce, Types and Programming Languages , MIT Press, 2002.
Benjamin C. Pierce, ed., Advanced Topics in Types and Programming Languages , MIT Press, 2005.
John C. Reynolds, Theories of Programming Languages, Cambridge University Press, 1998.

Software

The programming language for this course is Standard ML, using the Standard ML of New Jersey (SML/NJ) implementation.

Please see course software for further information on programming with Standard ML.

Some useful LaTeX style files and samples may be found in the tex directory.

Where to go for help

If you have questions, want to chat about the course, or are looking for extra problems because you finished your homework the day it went out, there are numerous ways to contact the course staff. To see us in person, you can come to office hours, catch us after class or recitation, or e-mail the TAs to set up an appointment.

Electronically, you can either e-mail the TAs or post to the bulletin board (both addresses are at the top of this page). When mailing the TAs, please use the 15-312tas address to send your message to both of us; this will help ensure you get a timely response. In general, if your message is relevant to the entire class (e.g., a clarification question about a homework handout), you should post it to the bulletin board. However, if you have any doubts (e.g., you're worried that even asking your question might give away some of the solution), please e-mail the TAs directly; we will forward the response to the bulletin board if that is appropriate.

No Recording Permitted

No student may record or tape any classroom activity without the express written consent of Prof. Robert Harper. If a student believes that he/she is disabled and needs to record or tape classroom activities, he/she should contact the Office of Disability Resources to request an appropriate accommodation.


Robert Harper
Last modified: Tue Feb 10 12:08:03 EST 2009

Valid XHTML 1.0!