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