Course Lesson Archive

Click on a title to expand a video series.

Module 0 › Getting Started
This is an optional set of videos to help you get started with Python. However, all of this information can be found elsewhere on this website.   Watch ›

4 videos totalling 29:19 minutes. slides demos
Module 1 › Expressions & Types
In this series of videos, we show how to use Python as a calculator. You type in math-like formula and Python produces answers for you.   Watch ›

7 videos totalling 32:09 minutes. slides no demos
Module 2 › Variables
In this series of videos, we introduce the concept of a variable, and with it, the assignment statement. This is what many consider the start of real programming.   Watch ›

4 videos totalling 14:27 minutes. slides no demos
Module 3 › Function Calls
In this series of videos, we introduce the concept of a function call. Function calls provide us with even more expressions to enter in Python. In a few cases they will even give us additional commands.   Watch ›

5 videos totalling 24:59 minutes. slides no demos
Module 4 › Modules
In this series of videos, we show how to save our work into .py files called modules. This will require that we install a second program: a code editor.   Watch ›

6 videos totalling 28:53 minutes. slides demos
Module 5 › User-Defined Functions
In this series of videos, we show how to create our own function definitions. This will be one of the fundamental concepts for this course.   Watch ›

6 videos totalling 38:47 minutes. slides demos
Module 6 › Strings
In this series of videos we introduce how to process text in Python. These techniques will be used in the first assignment.   Watch ›

5 videos totalling 36:42 minutes. slides demos
Module 7 › Specifications
Do we really need a series of videos about comments? Yes we do! As we see in this video series, proper documentation is even more important than code.   Watch ›

5 videos totalling 26:01 minutes. slides demos
Module 8 › Testing
In this video series we introduce the concept of testing as a formal process. This concept forms the basis of software engineering.   Watch ›

5 videos totalling 46:59 minutes. slides demos
Module 9 › Conditionals
In this video series, we demonstrate the difference between program structure and program flow. We also introduce our first control structure: the conditional.   Watch ›

10 videos totalling 39:44 minutes. slides demos
Module 10 › Algorithm Design
Your first assignment is very much do-this/do-that. In this video series we step back and see how we would design a complex program from the beginning.   Watch ›

7 videos totalling 41:01 minutes. slides demos
Module 11 › Objects
This video series introduces the notion of objects, a new type of data. It will also force us to revisit how we visualize Python.   Watch ›

8 videos totalling 38:35 minutes. slides demos
Module 12 › Python Memory
Now that we have objects, we have all of the tools to properly visualize what is going on when we execute Python. In this lesson we see how everything fits together.   Watch ›

7 videos totalling 40:52 minutes. slides demos
Module 13 › Errors and Asserts
In this lesson we show how to use our understanding of Python memory to read error messages. We also show how to create our own error messages and why   Watch ›

6 videos totalling 41:54 minutes. slides demos
Module 14 › Error-Handling
Now that we can create errors, what can we do with them? In this lesson we introduce a new control structure for recovering from errors.   Watch ›

4 videos totalling 26:00 minutes. slides demos
Module 15 › Sequences
In this lesson we introduce two more sliceable data types: tuples and lists. They are similar to strings, except that they can contain data other than text.   Watch ›

8 videos totalling 41:34 minutes. slides demos
Module 16 › For-Loops
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.   Watch ›

8 videos totalling 1:02 hours slides demos
Module 17 › Recursion
In this lesson we introduce recursion, a powerful programming tool and one of the fundamental principles of computer science. It is used in many advanced algorithms.   Watch ›

11 videos totalling 1:37 hours slides demos
Module 19 › Dictionaries
This lesson introduces the dictionary, which is the last built-in (as opposed to user-defined) type in this course. Many people consider this to be the most important type in Python.   Watch ›

8 videos totalling 50:12 minutes. slides demos
Module 18 › Nested-Lists
Lists can contain anything – even other lists. In this lesson we show why this is so important and what we have to look out for when using nested lists.   Watch ›

6 videos totalling 39:50 minutes. slides demos
Module 20 › Classes
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 ›

10 videos totalling 1:14 hours slides demos
Module 21 › Object-Oriented Design
In the video series on algorithm design, we talked about how to properly implement a a function definition. In this lesson we do the same for classes.   Watch ›

6 videos totalling 45:39 minutes. slides demos
Module 22 › Subclasses and Inheritance
Subclasses an another major feature of object-oriented languages. They allow you to add features to a class without starting over from scratch.   Watch ›

8 videos totalling 1:01 hours slides demos
Module 23 › Abstraction
We have seen several mysterious double-underscore methods in Python classes. In this series show why these methods are so important.   Watch ›

8 videos totalling 1:07 hours slides demos
Module 25 › Advanced Error Handling
Now that we understand typing, it is time to revist try-except statements. In this video series, we show how to customize our try-except to different error types.   Watch ›

6 videos totalling 41:03 minutes. slides demos
Module 24 › Dynamic Typing
Typing is the act of determining the type of a value. While we have used this a lot when enforcing preconditions, subclasses makes this a little more complicated.   Watch ›

4 videos totalling 32:39 minutes. slides demos
Module 26 › While Loops
In this series we introduce while-loops, which are an alternate form of iteration. This is the last true control-structure introduced in this course.   Watch ›

8 videos totalling 57:39 minutes. slides demos
Module 27 › GUI Applications
Now that we understand both loops and classes, we can make complex graphical applications. This will be the focus of the final assignment in the course.   Watch ›

10 videos totalling 1:15 hours slides demos
Module 30 › Searching and Sorting
Searching and sorting are two topics that are fundamental to computer science. In this video series we explore just a few examples of sorting algorithms.   Watch ›

8 videos totalling 1:04 hours slides demos
Module 28 › Generators
Generators are a fairly new topic that we introduced last year during the pandemic. They are a way to speed up for-loop computations.   Watch ›

9 videos totalling 1:06 hours slides demos