15-312 Foundations of Programming Languages

  • Lectures are Tuesday and Thursday, 1:30-2:50, Wean Hall 7500.
  • Recitations are
    • Section A, Wed 9:30-10:20, PH A18A
    • Section B, Wed 10:30-11:20, SH 208
  • 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    Notes    Additional Reading Code    Assignment Due

Tue Aug 31 Overview slides   code  
Wed Sep 1 Concrete Syntax        
Thu Sep 2 Inductive Definitions notes Ch.1; Ch.3    

Tue Sep 7 Abstract Syntax notes Ch.4    
Wed Sep 8 Rule Induction        
Thu Sep 9 Static and Dynamic Semantics notes Chs.5-7   Assignment 1

Tue Sep 14 A Functional Language notes Ch.9    
Wed Sep 15 De Bruijn Representation        
Thu Sep 16 Type Safety notes Chs.9,10    

Tue Sep 21 Progress notes Ch.10    
Wed Sep 22 Miscellaneous        
Thu Sep 23 Aggregate Data Structures notes Ch.19.1-2   Assignment 2

Tue Sep 28 An Abstract Machine notes Ch.11.1    
Wed Sep 29 Adding New Types to MinML        
Thu Sep 30 Continuations notes Chs.12,13 code Assignment 3

Tue Oct 5 Parametric Polymorphism notes Ch.20    
Wed Oct 6 Continuations        
Thu Oct 7 Data Abstraction notes Ch.21    

Tue Oct 12 Recursive Types notes Ch.19.3    
Wed Oct 13 Review        
Thu Oct 14 Midterm Exam (in class)       Assignment 4

Tue Oct 19 Subtyping notes Ch.26    
Wed Oct 20 Midterm Solution Review        
Thu Oct 21 Bidirectional Type Checking notes none   Assignment 5

Tue Oct 26 Mutable Storage notes Chs.14,15    
Wed Oct 27 Coercion Examples        
Thu Oct 28 Monadic Input and Output notes none    

Tue Nov 2 Records and Variants notes Pierce Ch.11    
Wed Nov 3 Monads        
Thu Nov 4 An Object-Oriented Language I notes     Assignment 6

Tue Nov 9 An Object-Oriented Language II notes      
Wed Nov 10 OOP and EML        
Thu Nov 11 Storage Management notes     Assignment 7

Tue Nov 16 Call-by-Need and Futures notes      
Wed Nov 17 Storage Management Examples        
Thu Nov 18 The Curry-Howard Isomorphism notes      

Tue Nov 23 No Lecture (Project Day)        
Wed Nov 24 No Classes (Thanksgiving Holiday)        
Thu Nov 25 No Classes (Thanksgiving Holiday)        

Tue Nov 30 Program Equivalence notes      
Wed Dec 1          
Thu Dec 2 Concurrent Processes notes     Assignment 8(a)

Tue Dec 7 The Pi-Calculus and Concurrent ML   notes   code  
Wed Dec 8          
Thu Dec 9 Dependent Types none     Assignment 8(b)

Mon Dec 13 Final Exam, 5:30pm-8:30pm, HH B131        

[ Home | Schedule | Assignments | Software | Resources ]

Frank Pfenning