CSC148H: Lectures

Lecture Materials

Slides will be added here as .pdf files before each week of lectures.

Week Lecture Notes Lecture Files Readings / References
1 Lecture 1: Intro, ADTs Chapter 1 (section 1.4 is a good Python review), chapter 2
2 Lecture 2: Exceptions, OOP
3 Lecture 3: Recursion Cannibals and Missionaries Recursion Example Chapter 3
4 Lecture 4: Trees Building Expression Trees Example (imports from nodesrefs.py)
List of Lists Binary Tree Representation
Sections 5.1-5.5
5 Lecture 5: Binary Search Trees bst.py Section 5.6
6 and 7 Lecture 6: Algorithm Analysis bst2.py (BST implementing the iteration protocol)
Another Generator Example
Awful, Bad and Cool algorithms to find the maximum segment sum
Chapter 4
8 Lecture 7: Program Correctness and Algorithm Development
9 Lecture 8: Binary Search, Quicksort and Mergesort Binary Search
Correct Quicksort, Incorrect Quicksort and their Partition Procedure
Section 4.3.2, 4.4
10, 11 Lecture 9: Priority Queues and Heapsort
Lecture 10: Linked Lists
Heap-Implemented Priority Queue
Heapsort using a Priority Queue
In-place Heapsort (no Priority Queue)
Section 5.7, 7.2
12 Lecture 11: Graphs Chapter 6
13 Final Exam Review