Lecture Archive

Click on a title to expand a lecture.

Aug. 26 › Types and Expressions
In this class we give an overview of the course and its expectations. We also also talk about setting up Python over the weekend.   Watch ›

no handout no slides no demos
Aug. 31 › Variables and Assignments
In this class we build a mental model to understand how Python works. This will be our first class where we use Poll Everywhere.   Watch ›

no handout no slides no demos
Sep. 2 › Functions and Modules
In this class we talk about how to import optional features into Python. We also show how to make program files we can run.   Watch ›

no handout no slides no demos
Sep. 7 › User-Defined Functions
In this lecture we introduce how to define our own functions. We also develop a mental model for executing functions.   Watch ›

no handout no slides no demos
Sep. 9 › Strings
In this lecture we introduce how to process text in Python. These techniques will be used in the first assignment.   Watch ›

no handout no slides no demos
Sep. 14 › Specifications and Testing
In this lecture we introduce the concept of testing as a formal process. This material forms the basis of software engineering.   Watch ›

no handout no slides no demos
Sep. 16 › Conditionals and Program Flow
In this lecture, we demonstrate the difference between program structure and program flow. We also introduce our first control structure: the conditional.   Watch ›

no handout no slides no demos
Sep. 21 › Algorithm Design
Your first assignment was very much do-this/do-that. Today we step back and see how we would design a complex program from the beginning.   Watch ›

no handout no slides no demos
Sep. 23 › Objects
This lecture introduces the notion of objects, a new type of data. It will also force us to question what we know about Python.   Watch ›

no handout no slides no demos
Sep. 28 › Memory in Python
The last lecture pulled back the curtain on what really is happenind with memory in Python. Today we put everything back together.   Watch ›

no handout no slides no demos
Sep. 30 › Asserts and Error Handling
In this lecture 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 ›

no handout no slides no demos
Oct. 5 › Lists (and Sequences)
Today we introduce another sliceable data type: lists. They are similar to strings, except that they can contain data other than text.   Watch ›

no handout no slides no demos
Oct. 7 › 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 ›

no handout no slides no demos
Oct. 14 › Recursion
Recursion is a powerful programming tool and one of the fundamental principles of computer science. It is used in many advanced algorithms.   Watch ›

no handout no slides no demos
Oct. 19 › More Recursion
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.   Watch ›

no handout no slides no demos
Oct. 21 › Nested Lists and Dictionaries
This presentation explores the last built-in (as opposed to user-defined) types in this course. These types are often used to store data in files.   Watch ›

no handout no slides no demos
Oct. 26 › 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 ›

no handout no slides no demos
Oct. 28 › Object-Oriented Design
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 ›

no handout no slides no demos
Nov. 2 › Inheritance
This lecture introduces subclasses, which can add extra functionality to an existing class. Subclasses and inheritance important parts of object oriented programming.   Watch ›

no handout no slides no demos
Nov. 4 › Operators and Abstraction
We have seen several mysterious double-underscore methods in Python classes. In this lecture show why these methods are so important.   Watch ›

no handout no slides no demos
Nov. 9 › Dynamic Typing
Typing is the act of determining the type of a value. Today we question why typing is so important, and show why this has become much trickier with the introduction of subclasses.   Watch ›

no handout no slides no demos
Nov. 11 › While Loops
Today we introduce while-loops, which are an alternate form of iteration. We show why they are different from for-loops, and when to use them.   Watch ›

no handout no slides no demos
Nov. 16 › GUI Applications
This lecture combines while-loops and classes to show how to make complex graphical applications. This lecture will provide you all that you need to know to get started on the last assignment.   Watch ›

no handout no slides no demos
Nov. 18 › Generators
In this lecture we introduce generators, which are a very “Pythonic” feature. They give us a way to speed up for-loops, and introduce us to an entirely new way of thinking about programs.   Watch ›

no handout no slides no demos
Nov. 23 › Coroutines
Generators are a specific example of a concept known as coroutines. In this lecture we go into more detail on coroutines and show how they are used in the final assignment.   Watch ›

no handout no slides no demos
Nov. 30 › Searching and Sorting
In this lecture we end with a preview of what higher-level computer science courses look like. We talk about the concept of sorting, and given an in-depth look at some of the algorithms available.   Watch ›

no handout no slides no demos
Dec. 2 › Advanced Sorting
In the previous lecture, we talked about sorting, but the algorithms we introduced were pretty slow. In this lecture we show how to use recursion to create better sorting algorithms.   Watch ›

no handout no slides no demos
Dec. 7 › Course Wrap-Up
Hopefully you have enjoyed this course. Assuming that you have, today we discuss your options about what to do next in computer science.   Watch ›

no handout no slides no demos
Dec. 10 › Review Session
This is the video for the review session for generators and coroutines. It also includes the question-and-answer session afterward.   Watch ›

no handout no slides no demos