1 | What is computation? | Slides for Lecture 1 (PDF) | Code for Lecture 1 (PY) |
2 | Branching and Iteration | Slides for Lecture 2 (PDF) | Code for Lecture 2 (PY) |
3 | String Manipulation, Guess and Check, Approximations, Bisection | Slides for Lecture 3 (PDF) | Code for Lecture 3 (PY) |
4 | Decomposition, Abstractions, Functions | Slides for Lecture 4 (PDF 1.1MB) | Code for Lecture 4 (PY) |
5 | Tuples, Lists, Aliasing, Mutability, Cloning | Slides for Lecture 5 (PDF) | Code for Lecture 5 (PY) |
6 | Recursion, Dictionaries | Slides for Lecture 6 (PDF - 1.3MB) | Code for Lecture 6 (PY) |
7 | Testing, Debugging, Exceptions, Assertions | Slides for Lecture 7 (PDF) | Code for Lecture 7 (PY) |
8 | Object Oriented Programming | Slides for Lecture 8 (PDF) | Code for Lecture 8 (PY) |
9 | Python Classes and Inheritance | Slides for Lecture 9 (PDF - 1.6MB) | Code for Lecture 9 (PY) |
10 | Understanding Program Efficiency, Part 1 | Slides for Lecture 10 (PDF) | Code for Lecture 10 (PY) |
11 | Understanding Program Efficiency, Part 2 | Slides for Lecture 11 (PDF) | Code for Lecture 11 (PY) |
12 | Searching and Sorting | Slides for Lecture 12 (PDF - 2.4MB) | Code for Lecture 12 (PY) |