Schedule
Readings should be completed before the corresponding lecture. Assignment links appear on the Assignments page.
| Week | Dates | Topic | Reading | Due |
|---|---|---|---|---|
| 1 | Aug 24–28 | Intro, expressions, values | Ch. 1.1–1.3 | |
| 2 | Aug 31–Sep 4 | Functions, control flow | Ch. 1.4–1.6 | A1 |
| 3 | Sep 7–11 | Higher-order functions | Ch. 1.7 | A2 |
| 4 | Sep 14–18 | Recursion | Ch. 1.8 | A3 |
| 5 | Sep 21–25 | Data abstraction, sequences | Ch. 2.1–2.3 | A4 |
| 6 | Sep 28–Oct 2 | Mutable data | Ch. 2.4 | A5 |
| 7 | Oct 5–9 | Object-oriented programming | Ch. 2.5 | Midterm |
| 8 | Oct 12–16 | Inheritance, generic functions | Ch. 2.6–2.7 | A6 |
| 9 | Oct 19–23 | Interpretation | Ch. 3.1–3.2 | A7 |
| 10 | Oct 26–30 | Trees, linked structures | Ch. 3.3 | A8 |
| 11 | Nov 2–6 | Streams and iterators | Ch. 4.1 | A9 |
| 12 | Nov 9–13 | SQL and databases | Ch. 4.2 | A10 |
| 13 | Nov 16–20 | Distributed computing | Ch. 4.3 | Proposal |
| 14 | Nov 23–27 | Thanksgiving break | ||
| 15 | Nov 30–Dec 4 | Project work / review | ||
| 16 | Dec 7–11 | Final presentations | Project |