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 A21 Porter Hall Rob Simmons
Section B: Wed 13:30-14:20 5328 Wean Hall Daniel Lee
Midterm Exam: Thu Mar 6 10:30AM 1212 Doherty Hall In class, open book
Final Exam: Thu May 8 5:30PM 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: Rob Simmons 8112 Wean Hall Tuesday 19:00-20:00
TA: Daniel Lee 4301F Doherty Hall Monday 14:00-15: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 6, 2007 that will account for 20% of your grade. You may wish to review last year's midterm (solutions)to get an idea of what to expect.

Final

There will be a three-hour, open-book final examination on Thursday May 8, 2008 from 5:30PM to 8:30PM that will account for 30% of your grade. You may wish to review last year's final 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 away. For example, you may work on the homework with another student, but then you must erase the whiteboard, go home, and write up your solution individually. Or, if you discuss a problem with another student by e-mail, you must wait a few hours and then write up your solution without looking at the e-mail. We take your ability to independently recreate the solution 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 you understand all work that you submit. 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 make an earnest attempt to learn from the homeworks.

Texts

For the most part we will follow Harper's draft book, but will 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!
Benjamin C. Pierce, Types and Programming Languages , MIT Press, 2002.

Secondary

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.

The code directory contains source code used in examples and assignments.

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: Mon Jan 21 12:31:33 EST 2008

Valid XHTML 1.0!