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 lecture notes, hws, and readings.
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
- EOPL: Essentials of Programming Languages (third edition) by Daniel P. Friedman and Mitchell Wand, MIT Press, 2008,
- TLS: The Little Schemer, 4th Edition by Friedman and Felleisen
- SIP: Structure and Interp. of Computer Programs
Dates | Topics | hw Due | Readings | Optional Readings |
---|---|---|---|---|
Aug 23 | Introduction and Desiging a Programming Language | Handouts, Grading Policy | SIP Forward, Preface | |
Aug 25 | Scheme, Functional Programming Basics | TLS 1-2 | SIP 1, Sec 2.2 | |
Aug 30 | Scheme, Functional Programming Basics | HW 0 | TLS 1-2 | SIP 1, Sec 2.2 |
Sep 01 | Flat Recursion over Lists | EOPL Section 1.2, TLS 2-4 | SIP 1, Following the Grammar | |
Sep 06 | Scheme Procedures, Closures | HW 2 | TLS 8 | SIP 1, 3.2 |
Sep 08 | Syntax Abstraction | Revised^5 Report on Scheme, section 4.2 on Derived Expression Types | Section 2.2, SIP 1.3.2 | |
Sep 13 | Syntax Abstraction | HW 3 | Revised^5 Report on Scheme, section 4.2 on Derived Expression Types | Section 2.2, SIP 1.3.2 |
Sep 15 | Data Abstraction and Representation Strategies | EOPL 2.1, 2.2 | SIP 2 | |
Sep 20 | Data Abstraction (Procedural Representation) | HW 4 | EOPL 2.2 | TLS 5-7,SIP 2 |
Sep 22 | Data Abstraction (Interfaces for Recursive Data Types) | EOPL 2.3 | TLS5-7,SIP 2 | |
Sep 27 | Data Abstraction (A Tool for Defining Data Types) | HW 5 | EOPL 2.4 | TLS5-7,SIP 2 |
Sep 29 | Introduction to Interpreters | EOPL 3.1, 3.2.1 - 3.2.4 | ||
Oct 4 | Review for Exam | EOPL 1.1-3.3 | TLS 2-7 | |
Oct 6 | Exam 1 (Same time and place as regular classes) | |||
Oct 11 | Exam Postmortem | EOPL 1.1-3.3 | ||
Oct 13 | Adding Conditionals to Interpreters | HW 6 | EOPL 3.2.5 - 3.2.6 | |
Oct 18 | Adding Local Bindings to Interpreters | EOPL 3.2.7 | ||
Oct 20 | Adding Procedures to Interpreters | HW 7 | EOPL 3.3 | |
Oct 25 | Recursive Procedures | EOPL 3.4 | ||
Oct 27 | Variable Scoping and Binding | EOPL 3.5 | ||
Nov 1 | Explicit References | HW 8 | EOPL 4.1 - 4.2 | |
Nov 3 | Implicit References | EOPL 4.3 - 4.4 | ||
Nov 8 | Parameter-Passing Variations | HW 9 | EOPL 4.5 | |
Nov 10 | Continuation-passing Interpreters | EOPL 5.1 | ||
Nov 15 | Continuation-passing Interpreters | HW 10 | EOPL 5.1 | |
Nov 17 | Concurrency using Threads | EOPL 5.5 | ||
Nov 29 | Types | HW 11 | EOPL 7.1 - 7.2 | |
Dec 1 | Type-checking | EOPL 7.3-7.4 | ||
Dec 6 | Topic TBD | |||
Dec 8 | Exam 2 Review | |||
Dec 15 | Exam 2 (from 7:30 AM - 9:30 AM in Regular Classroom) |
Last modified Monday, August 22, 2011.