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 `.').