15-312 Foundations of Programming Languages
Schedule

  • Lectures are Tuesday and Thursday, 1:30-2:50, Scaife Hall 224.
  • Recitation is
    • Section A, Wed 11:30-12:20, BH 235A
    • Second session Wed 9:30-10:20, SH 324
  • 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 26 Overview slides   code  
Wed Aug 27 Concrete Syntax   Part II, Ch. 3    
Thu Aug 28 Inductive Definitions notes Part I, Ch. 1; Part II, Ch. 3-4       

Tue Sep 2 Abstract Syntax notes Part II, Ch. 4-5    
Wed Sep 3 Rule Induction        
Thu Sep 4 Static and Dynamic Semantics notes Part II, Ch. 5.3-5.4, 6-7   Assignment 1

Tue Sep 9 A Functional Language notes Part III, Ch. 8    
Wed Sep 10 De Bruijn Representation   Part II, Ch. 5.4    
Thu Sep 11 Type Safety notes Part III, Ch. 9.1-9.2    

Tue Sep 16 Aggregate Data Structures notes Part III, Ch. 9.3 code  
Wed Sep 17 Run-time Errors        
Thu Sep 18 An Abstract Machine notes Part V, Ch. 11.1   Assignment 2

Tue Sep 23 Exceptions notes Part V, Ch. 11.2    
Wed Sep 24 Closures        
Thu Sep 25 Exceptions and Continuations notes Part V, Ch. 12-13 exn, cont   Assignment 3

Tue Sep 30 Parametric Polymorphism notes Part VIII, Ch. 20    
Wed Oct 1 Continuations        
Thu Oct 2 Data Abstraction notes Part VIII, Ch. 21 code  

Tue Oct 7 Recursive Types notes Part VIII, Ch. 19.3    
Wed Oct 8 Recursive Types        
Thu Oct 9 Mutable Storage notes Part VI, Ch. 14   Assignment 4

Tue Oct 14 Monads notes Part VI, Ch. 15    
Wed Oct 15 Review        
Thu Oct 16 Midterm Exam (in class)   sample solution    

Tue Oct 21 Subtyping notes Part XI, Ch. 26    
Wed Oct 22 Subtyping        
Thu Oct 23 Type Checking notes none   Assignment 5

Tue Oct 28 Storage Management notes Part XIV, Ch. 31    
Wed Oct 29 More on Storage        
Thu Oct 30 Type Inference notes Pierce, Ch. 22      

Tue Nov 4 Objects notes EML paper (optional) EML  
Wed Nov 5 Type Checking and Inference        
Thu Nov 6 Objects (continued)       Assignment 6

Tue Nov 11 Inheritance and Subtyping notes      
Wed Nov 12 Java and EML        
Thu Nov 13 Futures notes   code Assignment 7

Tue Nov 18 Program Equivalence notes      
Wed Nov 19 Concurrency        
Thu Nov 20 Concurrent Processes notes      

Tue Nov 25 No Lecture (Project Day)        
Wed Nov 26 No Classes (Thanksgiving Holiday)        
Thu Nov 27 No Classes (Thanksgiving Holiday)        

Tue Dec 2 The Pi-Calculus and Concurrent ML notes   code  
Wed Dec 3 The Pi-Calculus        
Thu Dec 4 The Curry-Howard Isomorphism notes     Assignment 8

Mon Dec 15 Final Exam, 5:30pm-8:30pm, WeH 5403        

[ Home | Schedule | Assignments | Software | Resources ]

fp@cs
Frank Pfenning