CSC148 Course Notes#
Last updated January 13, 2025
See Quercus for the readings assigned each week. You will eventually be responsible for all readings listed here, unless we clearly indicate otherwise.
1. Recapping and Extending Some Key Prerequisite Material
2. Testing Your Code
3. Object-Oriented Programming
- 3.1 Introduction to Object-Oriented Programming
- 3.2 Representation Invariants
- 3.3 The Class Design Recipe
- 3.4 More on Designing Classes
- 3.5 Inheritance: Introduction and Methods
- 3.6 Inheritance: Attributes and Initializers
- 3.7 Inheritance: Tracing Initialization
- 3.8 Inheritance: Thoughts on Design
- 3.9 The
object
Class and Python Special Methods
4. Abstract Data Types
5. Exceptions
6. Linked Lists
7. Recursion
- 7.1 Motivation: Adding Up Numbers
- 7.2 Nested Lists: A Recursive Data Structure
- 7.3 Understanding Recursive Functions: Partial Tracing
- 7.4 Writing Recursive Functions: Using the Recursive Structure of the Problem
- 7.5 Writing Recursive Functions: Using a Set of Test Scenarios
- 7.6 How Recursive Code Can Fail
- 7.7 Recursion and the call stack
- 7.8 Branching recursion
8. Trees and Binary Search Trees
9. Recursive Sorting Algorithms