Below are lecture materials, listed by week.
- Week 1 (Jan 5 - Jan 11)
-
- Lecture slides (all)
- Function design exercise - handout
- Function design exercise - example
- Class design exercise - handout
- point.py
- Week 2 (Jan 12 - Jan 18)
-
- Lecture slides (all)
- Recognized Study Groups
- Rational exercise - handout
- rational_api.py
- rational.py
- namespace-examples.txt
- rational_with_properties.py
- namespace-examples.txt
- Square, RightAngleTriangle (first attempt)
- Shape class
- Square class (inheritance)
- RightAngleTriangle class (inheritance)
- Client code to draw shapes
- Week 3 (Jan 20 - Jan 25)
-
- Lecture slides (all)
- Shape class
- Square class
- RightAngleTriangle class
- Stack API
- Sack API
- Container
- Stack (full implementation)
- Sack (full implementation)
- Container client
- Stack unittests
- Sack unittests (see also alternative assert syntax)
- Bonus: catching Exceptions gracefully and getting user input
- Week 4 (Jan 26 - Feb 1)
-
- Lecture slides (all)
- Recursion exercises (tracing)
- Recursion examples (all code)
- Week 5 (Feb 2 - Feb 8)
-
- Lecture slides (all)
- Towers of Hanoi
- Drawing tree-like patterns with turtles
- Sudoku (API)
- Sudoku (full)
- Week 6 (Feb 9 - Feb 15/17)
-
- Lecture slides (all)
- stack.py
- stack2.py
- stack operations (timing)
- node_api.py
- node_solutions.py
- Exercise sheet (append)
- LinkedList-based Queues, Stacks
- Week 7 (Feb 27 - Mar 3)
-
- Lecture slides (all)
- tree.py (all code)
- csc148_queue.py (helper)
- Exercise sheet (contains)
- Exercise sheet (leaf_count)
- Week 8 (Mar 4 - Mar 8)
-
- Lecture slides (all)
- mutable.py (mutable default)
- binary_tree.py (all code)
- csc148_queue.py (helper)
- Exercise sheet (contains)
- Exercise sheet (evaluate)
- Week 9 (Mar 9 - Mar 15)
-
- Lecture slides (all)
- binary_tree.py (all code)
- Week 10 (Mar 16 - Mar 22)
-
- Lecture slides (all)
- recursion.py
- linked_list.py
- sorted_list.py
- Week 11 (Mar 23 - Mar 29)
-
- Lecture slides (all)
- birthday.py
- hash_table.py