Lectures

Click on a lecture to see the video, if it is available. Videos are restricted to a valid Cornell netid login. However, slides and demo code may be downloaded without a Cornell netid.

Using Classes Effectively

Lectures

The reading for this lecture is Chapter 17.

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

October 31, 2019 slides handout demos

Classes

Lectures

The reading for this lecture is Chapters 15, 16.

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.    Watch ›

October 29, 2019 slides handout demos

Nested Lists and Dictionaries

Lectures

The reading for this lecture is Chapter 11.

This lecture introduces the last built-in (as opposed to user-defined) types in this course. These types are often used to store data in files.    Watch ›

October 24, 2019 slides handout demos

More on Recursion

Lectures

The reading for this lecture is Sections 6.5-6.9.

As we saw last lecture, divide-and-conquer is one of the more popular uses of recursion. In this lecture we expand more on this concept.    Watch ›

October 22, 2019 slides handout demos

Recursion

Lectures

The reading for this lecture is Section 5.8-5.10.

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

October 17, 2019 slides handout demos