Lecture Archive

Click on a title to expand a lecture.

Aug. 22 › Types and Expressions
In this class we give an overview of the course and its expectations. We also also talk about setting up Python to get started on the first lab.   Watch ›

no handout no slides no demos
Aug. 24 › 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
Aug. 29 › 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
Aug. 31 › 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. 5 › 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. 7 › 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. 12 › 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. 14 › 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. 19 › 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. 21 › 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. 26 › 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
Sep. 28 › 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. 3 › 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. 5 › Nested Lists
This lecture explores lists in greater depth, both literally and metaphorically, As lists can contain any object, they can also contain other lsits.   Watch ›

no handout no slides no demos
Oct. 12 › 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. 17 › 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. 19 › Dictionaries
This presentation explores the last built-in (as opposed to user-defined) type in this course. We also show how to store this data in files.   Watch ›

no handout no slides no demos
Oct. 24 › 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. 26 › 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
Oct. 31 › 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. 2 › While Loops
While there is still much to say about classes, today we take a break to cover one last form of iteration: the while-loop. We need to cover this in order for you to complete the current assignment.   Watch ›

no handout no slides no demos
Nov. 7 › Operators and Abstraction
Now that we have covered everything we need for Assignment 6, it is time to return to classes. In this lecture we will talk about the mysterious double-underscore methods that we keep seeing in Python.   Watch ›

no handout no slides no demos
Nov. 9 › Advanced Error Handling
We saw how to handle errors in previous lecture. But now that we have classes, we can do so much more. This is why we are going to revist the topic.   Watch ›

no handout no slides no demos
Nov. 14 › 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. 16 › 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
Nov. 21 › 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
Nov. 28 › 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. 30 › 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