Search for tag: "python"

Lesson 30.2 Horizontal Notation

Sorting algorithms can be quite sophisticated. In order to understand them, we need some way to visualize them. In this video, we introduce horizontal notation, which is a way to track how much of a…

From  Hannah Lee on December 10th, 2020 10 plays

Lesson 29.1 Multitasking

To understand coroutines, we have to understand a little bit about their history first. Coroutines are a form of multitasking. This is what we informally call the act of running multiple programs at…

From  Hannah Lee on December 3rd, 2020 34 plays

Lesson 28.9 Dictionary Comprehension (OPTIONAL)

This video is not optional because the material is advanced. It is optional because this video series has run long and this topic is less important for you to know. While we have not talked about…

From  Hannah Lee on December 3rd, 2020 11 plays

Lesson 28.7 Iterator Chaining

Generators take iterators as input, but they also produce one as output. In this video we show how to chain iterators together, doing complex operations on our data.

From  Hannah Lee on December 3rd, 2020 22 plays

Lesson 28.4 Generator Visualization

Generators look like normal functions, but they do not behave like them. In this video we show how to visualize them, using the Python Tutor.

From  Hannah Lee on December 3rd, 2020 23 plays

Lesson 28.3 The yield Statement

Making iterator classes is hard. In this video, we show an alternative, allowing us to write the iterator as a ‘function”. This requires the addition of a new python statement, the yield…

From  Hannah Lee on December 3rd, 2020 26 plays

Lesson 28.2 Iterable Classes

In this video, we show how to make our own iterable and iterator classes. These are actually tightly linked, and you need one to create the other.

From  Hannah Lee on December 3rd, 2020 26 plays

Lesson 28.1 Iterators

We are familiar with iterables, types that we can use in a for-loop. In this video we introduce the iterator. This is a type that can be used in a for-loop, but we can also manually step through the…

From  Hannah Lee on December 3rd, 2020 28 plays

Lesson 27.9 Model-View-Controller

When we break up out application in multiple classes, we need to give each class a role. One of the most popular ways to do this is designate a class as a model, a view or a controller. In this video…

From  Hannah Lee on November 30th, 2020 36 plays

Lesson 26.5 While-Loops vs For-Loops

We can always replace for-loops with while-loops, but should we? In this video we talk about the trade-offs of the two control structures and why it might be better to use over the other.

From  Hannah Lee on November 12th, 2020 36 plays

Lesson 26.2 While-Loop Traces

While-loops can do everything that a for-loop can (and more) but they are much harder to use. That is why, in this video, we talk about how to debug a while-loop before we talk about how to write…

From  Hannah Lee on November 12th, 2020 38 plays

Lesson 26.1 The While-Loop

In this video we talk about the while-loop and explain why it is necessary. In particular, there are types of iteration that are not possible with the for-loop.

From  Hannah Lee on November 12th, 2020 44 plays

Lesson 25.1 Error Types

In this video we revisit error messages in Python and show how to read the error type. This type is a class, which means that you can construct your own error objects.

From  Hannah Lee on November 12th, 2020 42 plays

Lesson 24.4 Duck Typing

This partial typing from the previous video has a name. It is called duck typing. In this video we show both why this is so popular among Python programmers and also why it is so controversial.

From  Hannah Lee on November 12th, 2020 32 plays

Lesson 24.2 The isinstance Function

In this video, we show that we can solve the problem of strict typing by using the isinstance function. This function will be our preferred way for enforcing preconditions going forward.

From  Hannah Lee on November 12th, 2020 31 plays