Lectures

Click on a lecture to see the summary of that day, together with optional reading or viewing. You can also download the slides and any demo code.

Because of recent changes in venue, we are not able record lectures in this course. You are expected to attend in order to learn the material. You may review the lesson videos recorded during COVID for supplemental instruction.

Inheritance

Inheritance

This lecture references Lesson 22.

This lecture introduces subclasses, which can add extra functionality to an existing class. Subclasses and inheritance important parts of object-oriented programming.    More ›

November 4, 2025 handout no slides demos

Object-Oriented Design

Object-Oriented Design

This lecture references Videos 20.9-20.10 and Lesson 21.

In the lecture on algorithm design, we talked about how to properly implement a function definition. In this lecture we do the same for classes.    More ›

October 30, 2025 handout slides demos

Classes

Classes

This lecture references Videos 20.1-20.8.

Up until now, if we wanted to use objects, we imported a module that provided the class. In this lecture we finally learn how to create our own classes.    More ›

October 28, 2025 handout slides demos

Dictionaries

Dictionaries

This lecture references Videos 19.1-19.7.

This presentation explores the last built-in (as opposed to user-defined) type in this course. We also show how to store this data in files.    More ›

October 23, 2025 handout slides demos

More Recursion

More Recursion

This lecture references Videos 17.6-17.11.

The divide-and-conquer examples we saw in the previous session were on the easy side. In this session we look at some much more challenging examples.    More ›

October 21, 2025 handout slides demos