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 |