| Date | Reading | Topic | Due |
|---|---|---|---|
| 2/5 | 1.1-1.2 | Introduction; simple expressions | |
| 2/6 | Project 0: Getting started (ungraded) | ||
| 2/7 | 1.2-1.3 | Compound procedures; conditionals | |
| 2/8 | Project 1: Quilting | ||
| 2/9 | 2.1 | Recursion | |
| 2/12 | 2.2 | Induction | Homework 1 |
| 2/13 | Project 1 (continued) | ||
| 2/14 | 2.3-2.4 | Further examples & custom-sized quilts | |
| 2/15 | Project 1 (continued) | ||
| 2/16 | 3.1 | Iteration | |
| 2/19 | 3.2 | Using invariants | Homework 2 |
| 2/20 | Project 1 (concludes) | ||
| 2/21 | 3.3 | Perfect numbers, internal definitions, & let | |
| 2/22 | Special project: Card sorting (ungraded) | ||
| 2/23 | 3.5 | The Josephus problem | Homework 3 |
| 2/26 | 4.2 | Tree recursion and digital signatures | Project 1 |
| 2/27 | Project 2: Sum of divisors | ||
| 2/28 | Review for exam | HW 1-3 final submit | |
| 3/1 | Test 1 (no lab) | ||
| 3/2 | 4.1 | Orders of growth | |
| 3/5 | More on orders of growth | Code for project 2 | |
| 3/6 | Project 2 (continued) | ||
| 3/7 | More on tree recursion and digital signatures | ||
| 3/8 | Project 2 (continued) | ||
| 3/9 | Catch up day | Homework 4 | |
| 3/12 | 5.1 | Procedural parameters | |
| 3/13 | Project 2 (last work day) | ||
| 3/14 | 5.3 | Procedures that return procedures | |
| 3/15 | Project 2 peer review | Project 2 first draft | |
| 3/16 | 5.4 | Application of higher-order programming | |
| 3/19 | 6.1-6.2 | Data abstraction | Homework 5 |
| 3/20 | Project 3: Fractal curves | Project 2 | |
| 3/21 | 6.3 | Representations and implementations | |
| 3/22 | Project 3 (continued) | ||
| 3/23 | 6.5 | Strategy procedures; Overview of other CS courses | Homework 6 |
| 3/26 | 7.1-7.2 | Lists | |
| 3/27 | Project 3 (concludes) | ||
| 3/28 | Review/catch-up | Project 3 | |
| 3/29 | Test 2 11-1pm (no lab) | ||
| 3/30 | 7.3 | Basic list processing | |
Spring Break | |||
| 4/9 | Spring Break (no class) | ||
| 4/10 | Project 4: Nim with strategies | ||
| 4/11 | 6.4 | Three-pile Nim | |
| 4/12 | Project 4 (continued) | ||
| 4/13 | TBA (David in Oregon) | ||
| 4/16 | 7.4 | Iterative list processing | |
| 4/17 | Project 4 (continued) | ||
| 4/18 | 7.5 | Tree recursion and lists | Homework 7 |
| 4/19 | Project 4 (concludes) | ||
| 4/20 | More on tree recursion and lists | ||
| 4/23 | 7.6 | Movie query system | Project 4 |
| 4/24 | Project 5: Movie queries | ||
| 4/25 | 8.1 | Binary search trees | |
| 4/26 | Project 5 (continued) | ||
| 4/27 | 8.2 | Efficiency issues with binary search trees | |
| 4/30 | 8.3 | Expression trees | |
| 5/1 | Project 5 (continued) | ||
| 5/2 | 9.1-9.2 | Generic operations: multiple representations | Homework 8 |
| 5/3 | Project 5 (concludes) | ||
| 5/4 | 9.2 & 9.4 | More on multiple representations; computer graphics | |
| 5/7 | More on computer graphics | Project 5 | |
| 5/8 | Project 6: Implementing graphics | ||
| 5/9 | 9.3 | Exploiting commonality | |
| 5/10 | Project 6 (continued) | ||
| 5/11 | More on exploiting commonality | Homework 9 | |
| 5/14 | Project 6 (continued) in lab but at class time | ||
| 5/15 | Project 6 (concludes) | ||
| 5/16 | Review/evaluation | Project 6 | |
| 5/21 | Test 3: 1pm to 3pm (Monday) | ||