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

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