| |
15-312 Foundations of Programming Languages
| Fall 2003 |
| Frank Pfenning and Jonathan Aldrich |
| Lecture, TuTh 1:30-2:50, SH 224 |
| Section A, Wed 11:30-12:20, BH 235A |
| Second session Wed 9:30-10:20, SH 324 |
| 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?
- (12/17) Course grades have been assigned
and posted on Blackboard. Grading scale goes in increments of
12.5% (excluding extra credit): 100%-87.5% A, 87.5%-75% B, 75%-62.5% C,
62.5%-50% D. Extra credit was used to improve grades near
a grade border. Average number of points for the course
is 824/1000 = 82.4%.
- (12/17) The final has been graded, with an average score
of 190 pts = 76%;
see final and sample solution if you are curious
- (12/12) Solution to Assignment 8 (explanation of dynamic semantics)
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
| Lectures |
TuTh 1:30-2:50, SH 224 |
| Recitations |
Section A, Wed 11:30-12:20, BH 235A
Second session Wed 9:30-10:20, SH 324
|
| Textbook |
Course notes will be handed out, mostly based on:
Programming Languages: Theory and Practice. Robert Harper.
(Draft)
There is also a set of lecture notes.
|
| Credit |
12 units |
| Grading |
45% Programming Assignments, 20% Written Assignments,
10% Midterm Exam, 25% 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 |
Thu Oct 16, in class.
The midterm is closed book, one double-sided sheet of notes permitted.
|
| Final |
Mon Dec 15, 5:30pm-8:30pm, WeH 5403.
The final will be open book.
|
| Topics |
Mathematical foundations:
inductive definitions, substitution, rule induction
Language description techniques: higher-order abstract syntax,
typing rules, abstract machines
Language features: functions, recursion, products, sums,
continuations, exceptions, mutable storage, monads,
polymorphism, data abstraction, laziness, dynamic typing,
subtyping, intersection types, inheritance, concurrency,
garbage collection
|
| Home |
http://www.cs.cmu.edu/~fp/courses/312/ |
| Newsgroup |
news:cyrus.academic.cs.15-312 |
| Blackboard |
http://www.cmu.edu/blackboard/
Used only for tracking of grades
|
| Directories |
/afs/andrew/scs/cs/15-312/students/andrew_id/ for submission of assignments
|
Instructors
| |
Frank Pfenning |
| Contact |
fp@cs or x8-6343 |
| Office |
Wean Hall 8117 |
| Office Hours |
Wed 3:00-4:00 or by appointment |
| |
|
| |
Jonathan Aldrich |
| Contact |
jonathan.aldrich@cs.cmu.edu or x8-7278 |
| Office |
Wean Hall 8212 |
| Office Hours |
Mon 3:00-4:00 or by appointment |
Teaching Assistant
| |
Daniel Spoonhower |
| Contact |
spoons@cs.cmu.edu or x8-3043 |
| Office |
Wean Hall 5119 |
| Office Hours |
Thu 12:30-1:30 or by appointment |
Secretary
| |
Jennifer Landefeld |
| Contact |
jennsbl@cs.cmu.edu or x8-4740 |
| Office |
Wean Hall 8124 |
[ Home
| Schedule
| Assignments
| Software
| Resources
]
fp@cs
Frank Pfenning
|