| Week | Lecture # | Topics Covered | Book Sections |
|---|---|---|---|
| 1 | 1 |
Paradigms |
1.1 |
| 2 | Numbers and Arithmetic Basic Syntax Designing Programs Composing Functions |
2.1, 2.4, 2.5, 3.1 | |
| 2 | 3 | Abstraction Variables again Webwork |
3.1a, 3.2, 4.0 |
| 4 | Boolean Expressions Conditionals Symbols Simple Pictures |
4.1, 4.3, 5.0, 6.2 | |
| 3 | 5 | Structures | 6.3 |
| 6 | Mixing Data | 7.1 | |
| 4 | 7 | Computer Model Activation Stack Recursion |
9.0a, 9.0b, 9.0c |
| 8 | Lists Recursion on Lists |
9.1, 9.3 | |
| 5 | 9 | Producing Lists | 10.1 |
| 10 | Designing Complex Programs | 12.1 | |
| 6 | 11 | Trees | 14.1 |
| 12 | BSTs, BST Search, BST Insert | 14.2, 14.2c, 14.2d | |
| 7 | 13 | Compound Structures Designing for Mutual Reference |
14.3, 15.2 |
| 14 | Iterative Refinement Append Revenue |
16, 17.1, 17.2 | |
| 8 | 15 | Indexing Merge Equality |
17.3, 17.6, 17.8 |
| 16 | Abstracting Designs let / local |
19, 22.0 | |
| 9 | SPRING BREAK | ||
| 10 | 17 | Abstract List Functions Generative Recursion |
21.2, 25.0 |
| 18 | Merge Sort Quick Sort |
25.2a, 25.2b | |
| 11 | 19 | Fractals | 27.1 |
| 20 | Files as Lists | 27.2 | |
| 12 | 21 | Binary Search Graphs |
27.3 28.1 |
| 22 | Iteration | 29.0a | |
| 13 | 23 | Vectors Big O |
29.3a, 29.3b |
| 24 |
local |
30, 31 | |
| 14 | 25 | Changing the State of Variables Assignment and Sequencing |
35.2 |
| 26 | Functions with Memory Objects |
36, 39 | |
| 15 | 27 | Polymorphism | 39 |
| 28 | Inheritance OO Examples |
39 | |
| 16 | 29 | Reasonable Algorithms | |
| 30 | Review | ||