15-312 Foundations of Programming Languages
Schedule

  • Lectures are Tuesdays and Thursdays, 10:30-11:50, Porter Hall 225B.
  • Recitations are Wednesdays, 1:30-2:20, Scaife Hall 220.
  • The course notes provide additional reading material.
    They complement, but do not replace the lecture.
  • The schedule is subject to change throughout the semester.
Date Lecture or Recitation    Reading    Assignment Traffic

Tue Jan 11   Inductive Definitions Part I, Ch. 1; Part II, Ch. 3-4; lecture notes, and more notes  
Wed Jan 12   Abstract Syntax Part II, Ch. 4-5; lecture notes  
Thu Jan 13   Binding and Scope Part II, Ch. 4-5; lecture notes (thru page L4.3)  

Tue Jan 18   Overview    
Wed Jan 19   de Bruijn Notation    
Thu Jan 20   Static and Dynamic Semantics Part II, Ch. 5.3-5.4, 6-7 Assignment 1 Out

Tue Jan 25   A Functional Language Part III, Ch. 8  
Wed Jan 26   Inductive Proofs  
Thu Jan 27   Type Safety Part III, Ch. 9.1-9.2 Assignment 1 Due
Assignment 2 Out

Tue Feb 1   Aggregate Data Structures Part III, Ch. 9.3  
Wed Feb 2   Type Safety Review  
Thu Feb 3   An Abstract Machine Part V, Ch. 11.1  

Tue Feb 8   Exceptions Part V, Ch. 13  
Wed Feb 9   Assignments 1 and 2    
Thu Feb 10   Continuations Part V, Ch. 12 Assignment 2 Due
Assignment 3 Out

Tue Feb 15   Parametric Polymorphism Part VIII, Ch. 20  
Wed Feb 16   TBA    
Thu Feb 17   Data Abstraction Part VIII, Ch. 21 Assignment 3 Due
Assignment 4 Out

Tue Feb 22   Recursive Types/Review Part VIII, Ch. 19.3  
Wed Feb 23   HW3 and Midterm Review    
Thu Feb 24   Midterm Exam (tentative)
(in class)
   

Tue Mar 1   Mutable Storage Part VI, Ch. 14  
Wed Mar 2   Midterm post-mortem    
Thu Mar 3   Monads   Assignment 4 Due

Tue Mar 8   *** No Class (Spring Break) ***    
Wed Mar 9   *** No Class (Spring Break) ***    
Thu Mar 10   *** No Class (Spring Break) ***    

Tue Mar 15   TBA   Assignment 5 Out
Wed Mar 16   Mutable Storage    
Thu Mar 17   Subtyping Pierce, Ch. 15  

Tue Mar 22   Records Pierce, Chs. 11.8, 15  
Wed Mar 23   Bidirectional Typechecking    
Thu Mar 24   Objects Pierce, Ch. 18 Assignment 5 Due

Tue Mar 29   Dynamic Typing Part X, Ch. 24 Assignment 6 Out
Wed Mar 30   Coercion Elaboration    
Thu Mar 31   Futures    

Tue Apr 5   Concurrent ML    
Wed Apr 6   Open Recursion in OOP    
Thu Apr 7   First-Class Synchronization   Assignment 6 Due
Assignment 7 Out

Tue Apr 12   TBA    
Wed Apr 13   Concurrent ML    
Thu Apr 14   *** No Classes (Carnival) ***   Assignment 7 Due
(but turn in 4/19)
Assignment 8 Out

Tue Apr 19   Environments    
Wed Apr 20   The Pi-Calculus    
Thu Apr 21   Storage Management Part XIV, Ch. 31  

Tue Apr 26   The Curry-Howard Isomorphism    
Wed Apr 27   Linear Logic and Linear Types    
Thu Apr 28   The Curry-Howard Isomorphism    
Fri Apr 29       Assignment 8 Due

TBA       Assignment 8 Presentations

TBA   Final Exam      

[ Home | Schedule | Assignments | Software | Resources ]

crary@cs.cmu.edu
Karl Crary