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 meeting outlines, homeworks, and readings. For another view of the material, see the code examples page.

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 Essentials of Programming Languages (second edition) by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes, MIT Press, 2001, except as noted.

Dates Topics Homework Due Readings Optional Readings
Aug. 22 Introduction   Handouts, Grading Policy Forward, Preface
Aug. 23 Designing Scheme Data   The Little Schemer 1 Structure and Interp. of Computer Programs 1
Aug. 24 XML and the Design of Scheme   (In-class discussion)  
Aug. 24 Scheme, Functional Programming Basics   The Little Schemer 1-2 Structure and Interp. of Computer Programs 1
Aug. 29 Scheme, Functional Programming Basics HW 0 The Little Schemer 1-2 Structure and Interp. of Computer Programs 1
Aug. 30 List operations, Recursion   The Little Schemer 1-2 Following the Grammar
Aug. 31 Flat Recursion over Lists   Section 1.2, The Little Schemer 2-4 Structure and Interp. of Computer Programs 1, Following the Grammar
Sep. 5 Scheme Procedures, Closures HW 1 The Little Schemer 8 Structure and Interp. of Computer Programs 1, 3.2
Sep. 6 Recursion   The Little Schemer 2-5 Following the Grammar
Sep. 7 Syntax Abstraction   Revised^5 Report on Scheme, section 4.2 on Derived Expression Types Section 2.2, Structure and Interp. of Computer Programs 1.3.2
Sep. 12 Syntax Abstraction HW 2 Revised^5 Report on Scheme, section 4.2 on Derived Expression Types Section 2.2, Structure and Interp. of Computer Programs 1.3.2
Sep. 13 Exam review   The Little Schemer 1-4 Structure and Interp. of Computer Programs 1
Sep. 14 Exam 1   The Little Schemer 1-4 Structure and Interp. of Computer Programs 1
Sep. 19 Induction and Recursion HW 3, p 1-3 Chapter 1.1-1.2, Following the Grammar The Little Schemer 5-7
Sep. 20 Exam Post-mortem, Recursion   Following the Grammar The Little Schemer 4
Sep. 21 Recursion HW 3, p 8-12 Chapter 1.2, Following the Grammar The Little Schemer 5-7
Sep. 26 Recursion HW 4 Chapter 1.2, Following the Grammar The Little Schemer 5-7
Sep. 26 Tail Recursion (see above) Section 1.2.3  
Sep. 27 Recursion   Chapter 1.3  
Sep. 28 Scope HW 4 Chapter 1.3  
Oct. 3 Data Abstraction HW 5 Chapter 2  
Oct. 4 Exam review   Chapter 1.1-1.2, Following the Grammar The Little Schemer 2-7
Oct. 5 Exam 2   Chapter 1.1-1.2, Following the Grammar The Little Schemer 2-7
Oct. 10 Data Abstraction HW 5 Chapter 2  
Oct. 11 Exam Postmortem, Data Abstraction   Chapter 2  
Oct. 12 Data Abstraction   Chapter 2 Structure and Interp. of Computer Programs 4
Oct. 17 Environment-Passing Interpreters HW 6 Chapter 3.1-3.2 Structure and Interp. of Computer Programs 4
Oct. 18 Environment Passing Interpreters   Chapter 3.1-3.3  
Oct. 19 Environment-Passing Interpreters   Chapter 3.4 Structure and Interp. of Computer Programs 4
Oct. 24 Environment-Passing Interpreters HW 7 Chapter 3.5 Structure and Interp. of Computer Programs 4
Oct. 25 Environment Passing Interpreters   Chapter 3.5 Structure and Interp. of Computer Programs 4
Oct. 26 Environment-Passing Interpreters   Chapter 3.5 Structure and Interp. of Computer Programs 4
Oct. 31 Environment-Passing Interpreters HW 8, p. 2-3,5,5,8 Chapter 3.6 Structure and Interp. of Computer Programs 4
Nov. 1 Environment-Passing Interpreters   Chapter 3.4-3.6 Structure and Interp. of Computer Programs 4
Nov. 2 Environment-Passing Interpreters HW 8, p. 9 Chapter 3.7 Structure and Interp. of Computer Programs 4
Nov. 7 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Nov. 8 Exam Review   Chapter 1.3, 2.1-2.3, 3.1-3.6 Structure and Interp. of Computer Programs 4
Nov. 9 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Nov. 14 Exam 3   Chapter 1.3, 2.1-2.3, 3.1-3.6 Structure and Interp. of Computer Programs 4
Nov. 15 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Nov. 16 Parameter Passing HW 9 Chapter 3.8 Structure and Interp. of Computer Programs 4
Nov. 21 Thanksgiving Break, no class      
Nov. 22 Thanksgiving Break, no class      
Nov. 23 Thanksgiving Break, no class      
Nov. 28 Statements HW 10, p. 1-3 Chapter 3.9 Structure and Interp. of Computer Programs 4
Nov. 28 Objects and Classes   Chapter 5  
Nov. 29 Objects and Classes   Chapter 5  
Nov. 30 Objects and Classes   Chapter 5  
Dec. 5 Aspect-Oriented Programming HW 10, p. 4,6-9   aosd.net
Dec. 6 Exam Review   Chapter 3.7-3.9, 5 Structure and Interp. of Computer Programs 4
Dec. 7 Course Summary and Evaluation      
Mon., Dec 11, 12:00pm-2:00pm Final Exam   Chapter 3 Structure and Interp. of Computer Programs 4

Previous syllabi from earlier offerings of the class are also available. See the courses's about page.

Last modified Monday, November 13, 2006.

This web page is for the Fall 2006 offering of Com S 342 at Iowa State University. The details of this course are subject to change as experience dictates. You will be informed of any changes. Thanks to Curtis Clifton for help with these web pages. Please direct any comments or questions to Gary T. Leavens.