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.

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

Recursion

Recursion

This lecture references Videos 17.1-17.5.

Recursion is a powerful programming tool and one of the fundamental principles of computer science. It is used in many advanced algorithms.    More ›

October 16, 2025 handout slides demos

Nested Lists

Nested Lists

This lecture references Lesson 18.

This lecture explores lists in greater depth, both literally and metaphorically, As lists can contain any object, they can also contain other lsits.    More ›

October 9, 2025 handout slides demos

For-Loops

For-Loops

This lecture references Videos 16.1-16.7.

Lists (and sequences) come with their own special control structure: the for-loop. This is the last traditional control structure we will see for a while.    More ›

October 7, 2025 handout slides demos

Lists (and Sequences)

Lists (and Sequences)

This lecture references Videos 15.1-15.7.

Today we introduce another sliceable data type: lists. They are similar to strings, except that they can contain data other than text.    More ›

October 2, 2025 handout slides no demos