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.