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