What's New?
Download this zip file for files we will read and use in Session 14.
Homework 6 is available and due on Monday.
Schedule
| Week | Date | Unit | Topic | Notes & Code | Assignments | |
|---|---|---|---|---|---|---|
| 1 | Tue, 01/20 | A Gentle Introduction to the Study of Languages | 01 notes | Homework 0 | ||
| Thu, 01/22 | An Introduction to Racket | Learning a New Language: Racket | 02 notes & code | Homework 1 | ||
| 2 | Tue, 01/27 | & Functional Programming | More Primitive Racket | 03 notes & code | Homework 2 | |
| Thu, 01/29 | Racket Data Structures | 04 notes & code | ||||
| 3 | Tue, 02/03 | Racket Functions | 05 notes & code | Homework 3 | ||
| Thu, 02/05 | Higher-Order Functions | 06 notes & code | ||||
| 4 | Tue, 02/10 | Thinking Functionally | 07 notes & code | |||
| Thu, 02/12 | Inductive Specifications | Inductive Definitions of Data | 08 notes | Quiz 1 | ||
| 5 | Tue, 02/17 | & Recursive Programs | Defining Recursive Programs | 09 notes & code | Homework 4 | |
| Thu, 02/19 | Recursive Programming Techniques | 10 notes & code | ||||
| 6 | Tue, 02/24 | Recursive Programs and Loops | 11 notes & code | Homework 5 | ||
| Thu, 02/26 | Recursive Programs and Programming Languages | 12 notes & code | ||||
| 7 | Tue, 03/03 | An Application of Recursion: Variable Binding | 13 notes & code | Homework 6 | ||
| Thu, 03/05 | An Application of Recursion: A Small Interpreter | 14 notes & code | ||||
| 8 | Tue, 03/10 | Programming Recursively | 15 notes & code | |||
| Thu, 03/12 | Syntactic Abstraction | Syntactic Abstraction | 16 notes & code | Quiz 2 | ||
| . | Tue, 03/17 | SPRING BREAK | ||||
| Thu, 03/19 | ||||||
| 9 | Tue, 03/24 | Local Variables as Syntactic Abstraction | 17 notes & code | Homework 7 | ||
| Thu, 03/26 | Variable Reference and Scope | 18 notes & code | ||||
| 10 | Tue, 03/31 | Lexical Addresses | 19 notes & code | Homework 8 | ||
| Thu, 04/02 | Lexical Addresses, Part 2 | 20 notes & code | ||||
| 11 | Tue, 04/07 | Creating New Syntax | 21 notes & code | |||
| Thu, 04/09 | Data Abstraction | Data Abstraction and Variety | 22 notes & code | Quiz 3 | ||
| 12 | Tue, 04/14 | The Finite Function ADT | 23 notes & code | Homework 9 | ||
| Thu, 04/16 | Programs with State | 24 notes & code | ||||
| 13 | Tue, 04/21 | Objects as Closures | 25 notes & code | Code review | ||
| Thu, 04/23 | Building a Language Interpreter | 26 notes & code | Homework 10 | |||
| 14 | Tue, 04/28 | no class — work on homework | ||||
| Thu, 04/30 | Bringing It All Together | Optimization in a Simple Interpreter | 28 notes & code | Homework 11 | ||
| 15 | Tue, 05/05 | The Next Big Thing? | 29 notes & code | |||
| Thu, 05/07 | Back to the Future | 30 notes & code | ||||
| F | Thu, 05/14 | 1:00 - 2:50 p.m. | Final Exam | |||