Department of Computer Science

Com S 342: Principles of Programming Languages

Got a question?

Got a question or comment? Contact us at (515) 294-6168 or hridesh@cs.iastate.edu.

Course Syllabus

The table below gives the planned syllabus for the course. The syllabus lists the topics in order, and gives access to each lecture's lecture notes, hws, and readings.

Material describing the course and its objectives and grading policies is available elsewhere.

This syllabus is subject to change. If it is necessary to revise the schedule, then this page will be updated to reflect the changes.

The readings are from

  • EOPL: Essentials of Programming Languages (third edition) by Daniel P. Friedman and Mitchell Wand, MIT Press, 2008,
  • TLS: The Little Schemer, 4th Edition by Friedman and Felleisen
  • SIP: Structure and Interp. of Computer Programs
except as noted.

Dates Topics hw Due Readings Optional Readings
Aug 23 Introduction and Desiging a Programming Language   Handouts, Grading Policy SIP Forward, Preface
Aug 25 Scheme, Functional Programming Basics   TLS 1-2 SIP 1, Sec 2.2
Aug 30 Scheme, Functional Programming Basics HW 0 TLS 1-2 SIP 1, Sec 2.2
Sep 01 Flat Recursion over Lists   EOPL Section 1.2, TLS 2-4 SIP 1, Following the Grammar
Sep 06 Scheme Procedures, Closures HW 2 TLS 8 SIP 1, 3.2
Sep 08 Syntax Abstraction   Revised^5 Report on Scheme, section 4.2 on Derived Expression Types Section 2.2, SIP 1.3.2
Sep 13 Syntax Abstraction HW 3 Revised^5 Report on Scheme, section 4.2 on Derived Expression Types Section 2.2, SIP 1.3.2
Sep 15 Data Abstraction and Representation Strategies   EOPL 2.1, 2.2 SIP 2
Sep 20 Data Abstraction (Procedural Representation) HW 4 EOPL 2.2 TLS 5-7,SIP 2
Sep 22 Data Abstraction (Interfaces for Recursive Data Types)   EOPL 2.3 TLS5-7,SIP 2
Sep 27 Data Abstraction (A Tool for Defining Data Types) HW 5 EOPL 2.4 TLS5-7,SIP 2
Sep 29 Introduction to Interpreters   EOPL 3.1, 3.2.1 - 3.2.4  
Oct 4 Review for Exam   EOPL 1.1-3.3 TLS 2-7
Oct 6 Exam 1 (Same time and place as regular classes)      
Oct 11 Exam Postmortem   EOPL 1.1-3.3  
Oct 13 Adding Conditionals to Interpreters HW 6 EOPL 3.2.5 - 3.2.6  
Oct 18 Adding Local Bindings to Interpreters   EOPL 3.2.7  
Oct 20 Adding Procedures to Interpreters HW 7 EOPL 3.3  
Oct 25 Recursive Procedures   EOPL 3.4  
Oct 27 Variable Scoping and Binding   EOPL 3.5  
Nov 1 Explicit References HW 8 EOPL 4.1 - 4.2  
Nov 3 Implicit References   EOPL 4.3 - 4.4  
Nov 8 Parameter-Passing Variations HW 9 EOPL 4.5  
Nov 10 Continuation-passing Interpreters   EOPL 5.1  
Nov 15 Continuation-passing Interpreters HW 10 EOPL 5.1  
Nov 17 Concurrency using Threads   EOPL 5.5  
Thanksgiving Break Nov 21 - March 25
Nov 29 Types HW 11 EOPL 7.1 - 7.2  
Dec 1 Type-checking   EOPL 7.3-7.4  
Dec 6 Topic TBD      
Dec 8 Exam 2 Review      
Dec 15 Exam 2 (from 7:30 AM - 9:30 AM in Regular Classroom)      

Last modified Monday, August 22, 2011.