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.