Following is the tentative schedule of classes and labs before Spring Break, roughly the first half of the semester.
| Date | Reading | Topic | Due |
|---|---|---|---|
| 2/7 | 10.1-10.2 | Introduction to EBNF and Micro-Scheme | |
| 2/8 | Lab 1: Extending Evaluators | ||
| 2/9 | 10.2-10.3 | EBNF and Micro-Scheme | |
| 2/10 | Lab 1 (continued) | ||
| 2/11 | 10.3 | More on Micro-Scheme | |
| 2/14 | 10.4 | Global definitions: Mini-Scheme | |
| 2/15 | Lab 1 (continued) | ||
| 2/16 | 10.5 | Adding explanatory output | |
| 2/17 | Lab 1 (continued) | ||
| 2/18 | Catchup | ||
| 2/21 | 11.1-11.2 | The SLIM architecture | Homework #1 |
| 2/22 | Lab 1 (concludes) | ||
| 2/23 | 11.3 | SLIM's instruction set | Lab #1 |
| 2/24 | Lab 2: SLIM Assembly Language Programming | ||
| 2/25 | 11.4 | Iteration in assembly language | |
| 2/28 | 11.5 | Recursion in assembly language | |
| 2/29 | Lab 2 (continued) | ||
| 3/1 | 11.5 | More on recursion | |
| 3/2 | Lab 2 (concludes) | ||
| 3/3 | 11.6 | Memory in Scheme | Lab #2 |
| 3/6 | Review/catchup | Homework #2 | |
| 3/7 | Test #1, 7:00-9:00 pm in Olin 317 (no lab) | ||
| 3/8 | 12.1-12.2 | Revisiting tree recursion | |
| 3/9 | Lab 3: Formatting paragraphs | ||
| 3/10 | 12.3 | Memoization | |
| 3/13 | 12.4 | Dynamic programming | |
| 3/14 | Lab 3 (continued) | ||
| 3/15 | 12.5 | Comparing memoization and dynamic programming | |
| 3/16 | Lab 3 (concludes) | ||
| 3/17 | Catchup | Homework #3 | |
| 3/20 | 13.1-13.2 | Arithmetic expressions revisited | Lab #3 |
| 3/21 | Lab 4: Robots | ||
| 3/22 | 13.2-13.3 | Arithmetic expressions and RA-stacks | |
| 3/23 | Lab 4 (continued) | ||
| 3/24 | 13.3 | RA-stack implementations and representation invariants | |