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