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
Jan. 10 Introduction   Handouts, Grading Policy Forward, Preface
Jan. 10 XML and the Design of Scheme   (In-class discussion)  
Jan. 11 Designing Scheme Data   The Little Schemer 1 Structure and Interp. of Computer Programs 1
Jan. 12 Scheme, Functional Programming Basics   The Little Schemer 1-2 Structure and Interp. of Computer Programs 1
Jan. 17 Scheme, Functional Programming Basics HW 0 The Little Schemer 1-2 Structure and Interp. of Computer Programs 1
Jan. 18 List operations, Recursion   The Little Schemer 1-2 Following the Grammar
Jan. 19 Flat Recursion over Lists   Section 1.2, The Little Schemer 2-4 Structure and Interp. of Computer Programs 1, Following the Grammar
Jan. 24 Scheme Procedures, Closures HW 1 The Little Schemer 8 Structure and Interp. of Computer Programs 1, 3.2
Jan. 25 Recursion   The Little Schemer 2-5 Following the Grammar
Jan. 26 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
Jan. 31 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
Feb. 1 Exam review   The Little Schemer 1-4 Structure and Interp. of Computer Programs 1
Feb. 2 Exam 1   The Little Schemer 1-4 Structure and Interp. of Computer Programs 1
Feb. 7 Induction and Recursion HW3 p 1, 3-6 Chapter 1.1-1.2, Following the Grammar The Little Schemer 5-7
Feb. 8 Exam Post-mortem, Recursion   Following the Grammar The Little Schemer 4
Feb. 9 Recursion HW3 p 11-15 Chapter 1.2, Following the Grammar The Little Schemer 5-7
Feb. 14 Recursion HW4 p 2-4 Chapter 1.2, Following the Grammar The Little Schemer 5-7
Feb. 14 Tail Recursion (see above) Section 1.2.3  
Feb. 15 Recursion   Chapter 1.3  
Feb. 16 Scope HW4 p 7-8, 10, 14 Chapter 1.3  
Feb. 21 Data Abstraction HW5 p 1-3, 6 Chapter 2  
Feb. 22 Exam review   Chapter 1.1-1.2, Following the Grammar The Little Schemer 2-7
Feb. 23 Exam 2   Chapter 1.1-1.2, Following the Grammar The Little Schemer 2-7
Feb. 28 Data Abstraction HW5 p 8-10 Chapter 2  
Mar. 1 Exam Postmortem, Data Abstraction   Chapter 2  
Mar. 2 Data Abstraction   Chapter 2 Structure and Interp. of Computer Programs 4
Mar. 7 Environment-Passing Interpreters HW 6 Chapter 3.1-3.2 Structure and Interp. of Computer Programs 4
Mar. 8 Environment Passing Interpreters   Chapter 3.1-3.3  
Mar. 9 Environment-Passing Interpreters   Chapter 3.4 Structure and Interp. of Computer Programs 4
Mar. 14 Spring Break, no class      
Mar. 15 Spring Break, no class      
Mar. 16 Spring break, no class      
Mar. 21 Environment-Passing Interpreters HW 7 Chapter 3.5 Structure and Interp. of Computer Programs 4
Mar. 22 Environment Passing Interpreters   Chapter 3.5 Structure and Interp. of Computer Programs 4
Mar. 23 Environment-Passing Interpreters   Chapter 3.5 Structure and Interp. of Computer Programs 4
Mar. 28 Environment-Passing Interpreters HW8, p. 2-3,5,6,8 Chapter 3.6 Structure and Interp. of Computer Programs 4
Mar. 29 Environment-Passing Interpreters   Chapter 3.4-3.6 Structure and Interp. of Computer Programs 4
Mar. 30 Environment-Passing Interpreters HW8, p. 9 Chapter 3.7 Structure and Interp. of Computer Programs 4
Apr. 4 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 5 Exam Review   Chapter 1.3, 2.1-2.3, 3.1-3.6 Structure and Interp. of Computer Programs 4
Apr. 6 Exam 3   Chapter 1.3, 2.1-2.3, 3.1-3.6 Structure and Interp. of Computer Programs 4
Apr. 11 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 12 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 13 Parameter Passing HW9, p. 3-5 Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 18 Statements HW9, p. 8-10 Chapter 3.9 Structure and Interp. of Computer Programs 4
Apr. 18 Objects and Classes   Chapter 5  
Apr. 19 Objects and Classes   Chapter 5  
Apr. 20 Objects and Classes   Chapter 5  
Apr. 25 Aspect-Oriented Programming     aosd.net
Apr. 26 Exam Review   Chapter 3.7-3.9, 5 Structure and Interp. of Computer Programs 4
Apr. 27 Course Summary and Evaluation      
Thurs., May 4 7:30am-9:30am 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 Wednesday, April 5, 2006.

This web page is for the Spring 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.