|
15-312 Foundations of Programming Languages
Fall 2004 |
Frank Pfenning |
Lecture, TuTh 1:30-2:50, WeH 7500 |
Section A, Wed 9:30-10:20, PH A18A |
Section B, Wed 10:30-11:20, SH 208 |
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/14) The final has been graded, and final scores, assignment 8
scores, as well as (unofficial) course grades are available on
Blackboard. Average for the final was 198.9/250 (79.6%).
- (12/13) The final exam
and a sample solution are
now available.
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, WeH 7500 |
Recitations |
Section A, Wed 9:30-10:20, PH A18A
Section B, Wed 10:30-11:20, SH 208
|
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 14, in class.
The midterm is closed book, one double-sided sheet of notes permitted.
|
Final |
Mon Dec 13, 5:30pm-8:30pm, HH B131.
The final is 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
Usually checked at least once a day
For faster turnaround, e-mail the teaching assistants |
Blackboard |
http://www.cmu.edu/blackboard/
Used only for tracking of grades
|
Directories |
/afs/andrew/scs/cs/15-312/handin/andrew_id/ for submission of assignments
|
Instructor
|
Frank Pfenning |
Contact |
fp@cs or x8-6343 |
Office |
Wean Hall 8117 |
Office Hours |
Tue 3:00-4:00 |
|
|
Teaching Assistants
|
Matt Moore |
Email |
mlmlm@cmu.edu |
Office |
Wean 7th Floor Whiteboards, or 5th floor cluster (as needed) |
Office Hours |
2:30-3:30pm Wednesday, or by appointment |
|
|
|
Jason Reed |
Email |
jcreed+@andrew.cmu.edu |
Phone |
412 600 5284 |
Office |
Wean Hall 3721 |
Office Hours |
4:30-5:30pm Thursday (except Sept 8, 2:30-3:30 instead of Sept 9) |
Administrative Assistant
|
Jennifer Landefeld |
Contact |
jennsbl@cs.cmu.edu |
Office |
Wean Hall 8120 |
[ Home
| Schedule
| Assignments
| Software
| Resources
]
fp@cs
Frank Pfenning
|