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.

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. 13 Course Policies, Introduction   Handouts, Course Web Site Forward, Preface
Jan. 13 Designing a Language   (In-class discussion) Structure and Interp. of Computer Programs 1
Jan. 14 Running Scheme, Lists in Scheme   The Little Schemer 1  
Jan. 15 Designing a Language HW0, first part (In-class discussion) Structure and Interp. of Computer Programs 1
Jan. 20 Designing a Language Exercise 00 (In-class discussion) Structure and Interp. of Computer Programs 1
Jan. 21 Scheme Procedures Exercise 01 The Little Schemer 1-2  
Jan. 22 Scheme, Functional Programming Basics HW0, second part The Little Schemer 1-2 Structure and Interp. of Computer Programs 1
Jan. 27 Scheme, Functional Programming Basics HW1, first part The Little Schemer 1-2 Structure and Interp. of Computer Programs 1
Jan. 28 Recursion Exercise 02 The Little Schemer 3  
Jan. 29 Scheme, Functional Programming Basics HW1, second part The Little Schemer 3 Structure and Interp. of Computer Programs 1
Feb. 3 Syntax Abstraction Exercise 03 The Little Schemer 2 Structure and Interp. of Computer Programs 1
Feb. 4 Recursion Exercise 04 The Little Schemer 4  
Feb. 5 Syntax Abstraction (see below) The Little Schemer 2 Structure and Interp. of Computer Programs 1
Feb. 5 Induction and Recursion Exercise 05 Chapter 1.1 The Little Schemer 5-8
Feb. 10 Induction and Recursion (Exercise 06) Chapter 1.1-1.2 The Little Schemer 5-8
Feb. 11 Exam review Exercise 07 The Little Schemer 1-4 Structure and Interp. of Computer Programs 1
Feb. 12 Exam 1   The Little Schemer 1-4 Structure and Interp. of Computer Programs 1
Feb. 17 Induction and Recursion Exercise 06, HW2, part 1 Chapter 1.1-1.2 The Little Schemer 3-8
Feb. 18 Exam Postmortem, Induction and Recursion   The Little Schemer 5-8  
Feb. 19 Induction and Recursion HW2, part 2 Chapter 1.1-1.2 The Little Schemer 3-8
Feb. 24 Scope HW2, part 3 HW3, part 1 Chapter 1.3  
Feb. 25 Scope Exercise 08 Chapter 1.3  
Feb. 26 Scope HW3, part 2   Chapter 1.3  
Mar. 2 Data Abstraction HW3, part 3 Chapter 2  
Mar. 3 Exam review Exercise 09 Chapter 1.1-1.2 The Little Schemer 2-4
Mar. 4 Exam 2   Chapter 1.1-1.2 The Little Schemer 2-4
Mar. 9 Data Abstraction HW3, part 4 Chapter 2  
Mar. 10 Exam Postmortem, Data Abstraction   Chapter 2  
Mar. 11 Data Abstraction Exercise 10 Chapter 2  
Mar. 16 Spring break, no classes      
Mar. 18 Spring break, no classes      
Mar. 23 Environment-Passing Interpreters   Chapter 3.1 Structure and Interp. of Computer Programs 4
Mar. 24 Review for Exam 2 makeup (HW 2b)   Chapter 1.1-1.2, Exam 2 study guide
Mar. 25 Exam 2 makeup   HW 2b Chapter 1.1-1.2, Exam 2 study guide
Mar. 30 Environment-Passing Interpreters Homework 4 and Homework 5 Chapter 3.1-3.2 Structure and Interp. of Computer Programs 4
Mar. 31 Environment-Passing Interpreters Exercise 11 Chapter 3.1-3.3 Structure and Interp. of Computer Programs 4
Apr. 1 Environment-Passing Interpreters Exercise 12 Chapter 3.4-3.5 Structure and Interp. of Computer Programs 4
Apr. 6 Environment-Passing Interpreters Homework 6 Chapter 3.5-3.7 Structure and Interp. of Computer Programs 4
Apr. 7 Environment-Passing Interpreters Exercise 13 Chapter 3.4-3.7 Structure and Interp. of Computer Programs 4
Apr. 8 Environment-Passing Interpreters   Chapter 3.5-3.7 Structure and Interp. of Computer Programs 4
Apr. 13 Environment-Passing Interpreters Homework 7, problems 2-3,5-6,8 Chapter 3.1-3.7 Structure and Interp. of Computer Programs 4
Apr. 14 Exam Review Exercise 14 Section 1.3, Chapter 2  
Apr. 15 Exam 3   Section 1.3, Chapter 2  
Apr. 20 Parameter Passing Homework 7, problem 9 Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 21 Parameter Passing   Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 22 Parameter Passing Homework 8, up to problem 8 Chapter 3.8 Structure and Interp. of Computer Programs 4
Apr. 27 Parameter Passing, Aspect-Oriented Programming Homework 8, problem 9 Chapter 3.8 aosd.net
Apr. 28 Exam Review Exercise 15 Chapter 3 Structure and Interp. of Computer Programs 4
Apr. 29 Course Summary and Evaluation      
Fri., May 7 9:45-11:45 a.m. Final Exam   Chapter 3 Structure and Interp. of Computer Programs 4

Last modified Monday, April 26, 2004.

This web page is for the Spring 2004 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 at leavens@cs-DOT-iastate-DOT-edu (after replacing -DOT- with `.').