In-person lectures were mandatory and occurred on Mondays and Wednesdays. Recitations were held on Fridays and were optional.
Finger Ex. stands for “Finger Exercises” and “PS” stands for “Problem Set.”
| Week # | Monday Lecture | Wednesday Lecture | Recitations |
|---|---|---|---|
| 1 | No lecture. |
Lecture 1: Introduction to Python: knowledge, machines, objects, types, variables, bindings, IDEs Readings: Ch 1, Ch 2.1–2.2 Lecture 1 Finger Ex. handed out PS 0 out (not graded) |
Recitation 1 |
| 2 |
Lecture 2: Core Elements of Programs: strings, input/output, f-strings, operators, branching, indentation Readings: Ch 2.3–2.4 Lecture 2 Finger Ex. handed out Lecture 1 Finger Ex. due PS 1 out |
Lecture 3: Program Flow: control flow, loops Readings: Ch 2.5–2.8 Microquiz 1 (30 minutes in-class on your computer) Lecture 3 Finger Ex. handed out Lecture 2 Finger Ex. due |
Recitation 2 |
| 3 |
Lecture 4: Iteration, Simple Programs: guess and check, binary, fractions Readings: Ch 3.1, 3.3 Lecture 4 Finger Ex. handed out Lecture 3 Finger Ex. due |
Lecture 5: Simple Algorithms: approximation method, floats Readings: Ch 3.2–3.3 Microquiz 2 (30 minutes in-class on your computer) Lecture 5 Finger Ex. handed out Lecture 4 Finger Ex. due PS 1 halfway hand-in due |
No recitation |
| 4 |
Lecture 6: Simple Algorithms: bisection search, Newton-Raphson Readings: Ch 3.4–.5 Lecture 6 Finger Ex. handed out Lecture 5 Finger Ex. due |
Lecture 7: Functions: decomposition, abstraction, specifications Readings: Ch 4.1–4.2 Microquiz 3 (30 minutes in-class on your computer) Lecture 7 Finger Ex. handed out Lecture 6 Finger Ex. due |
Recitation 3 |
| 5 |
Lecture 8: Functions: environments, scope, functions as objects Readings: Ch 4.3–4.6 Lecture 8 Finger Ex. handed out Lecture 7 Finger Ex. due |
Lecture 9: Tuples and Lists Readings: Ch 5.1–5.3 Microquiz 4 (30 minutes in-class on your computer) Lecture 9 Finger Ex. handed out Lecture 8 Finger Ex. due PS 2 out PS 1 due |
Recitation 4 |
| 6 | No lecture |
Lecture 10: List Operations, Mutability: mutation, aliasing, tricky examples with loops over L Readings: Ch 5.3–5.5 Lecture 10 Finger Ex. handed out Lecture 9 Finger Ex. due PS 2 halfway hand-in due |
Recitation 5 |
| 7 |
Lecture 11: Aliasing and Cloning, List Comprehensions Readings: Ch 5.3–5.5 Microquiz 5 (30 minutes in-class on your computer) Lecture 11 Finger Ex. handed out Lecture 10 Finger Ex. due |
Lecture 12: More Functions as Objects, Keyword Arguments, Default Arguments, Debugging: glass box/black box testing, examples Readings: Ch 4.4, Ch 8 Lecture 12 Finger Ex. handed out Lecture 11 Finger Ex. due PS 3 out PS 2 due |
Recitation 6 |
| 8 |
Lecture 13: Exceptions, Assertions Readings: Ch 9 Microquiz 6 (30 minutes in-class on your computer) Lecture 13 Finger Ex. handed out Lecture 12 Finger Ex. due |
Lecture 14: Dictionaries: keys, values, mutability, iteration over a dict, examples Readings: Ch 5.7 Lecture 14 Finger Ex. handed out Lecture 13 Finger Ex. due PS 3 halfway hand-in due |
Recitation 7 |
| 9 |
Lecture 15: Recursion: iteration vs recursion, inductive reasoning Readings: Ch 6.1 Microquiz 7 (30 minutes in-class on your computer) Lecture 15 Finger Ex. handed out Lecture 14 Finger Ex. due |
Lecture 16: Recursion: Fibonacci, Fibonacci with a dict, recursion on non-numerics, recursion on lists, Towers of Hanoi (extra) Readings: Ch 6.2–6.4 Lecture 16 Finger Ex. handed out Lecture 15 Finger Ex. due PS 4 out PS 3 due |
Recitation 8 |
| 10 |
Lecture 17: Object Oriented Programming: data abstraction, class def, class instances, methods Readings: Ch 10.1 Microquiz 8 (30 minutes in-class on your computer) Lecture 17 Finger Ex. handed out Lecture 16 Finger Ex. due |
Lecture 18: Object Oriented Programming: dunder methods, examples Readings: Ch 10.1 Lecture 18 Finger Ex. handed out Lecture 17 Finger Ex. due PS 4 halfway hand-in due |
No recitation |
| 11 |
Lecture 19: Inheritance: hierarchies, subclasses, using inherited methods, examples Readings: Ch 10.2 Lecture 19 Finger Ex. handed out Lecture 18 Finger Ex. due |
Lecture 20: Inheritance: more examples Readings: Ch 10.4 Lecture 20 Finger Ex. handed out Lec19 Finger Ex. due PS 5 out PS 4 due |
Recitation 9 |
| 12 |
Lecture 21: Complexity: measuring efficiency, timing programs, counting operations Readings: Ch 11 Microquiz 9 (45 minutes class on your computer) Lecture 20 Finger Ex. due No Lecture 21 Finger Ex. |
No lecture | No recitation |
| 13 |
Lecture 22: Complexity: Big-Oh notation, Big-Theta notation, complexity relations and classes, calc-complexity Readings: Ch 11 Lecture 22 Finger Ex. handed out |
Lecture 23: String and List Examples, Analyzing Complexity, Search: indirection, linear search, bisection search Readings: Ch 12.1 Lecture 23 Finger Ex. handed out Lecture 22 Finger Ex. due PS 5 halfway hand-in due |
Recitation 10 |
| 14 |
Lecture 24: Sort: bogo, bubble, selection, merge sort Readings: Ch 12.2 Microquiz 10 (30 minutes in-class on your computer) Lecture 23 Finger Ex. due No Lecture 24 Finger Ex. |
Lecture 25: Visualization Library Readings: Ch 13 PS 5 due No Lecture 25 Finger Ex. |
No recitation |
| 15 |
Lecture 26: Extras: lists in memory, hashing, simulations, wrap-up Readings: Ch 12.3, Ch 17 No Lecture 26 Finger Ex. |
No lecture | No recitation |