You may want to download the lecture slides that were used for these videos (PDF).
1. Multinomial Coefficients
How many ways can you rearrange the letters of a string if some of the letters are duplicated? The answer is given by multinomial coefficients. (4:25)
2. The Binomial & Multinomial Theorems
Here we introduce the Binomial and Multinomial Theorems and see how they are used. The Binomial Theorem gives us as an expansion of (x+y)n. The Multinomial Theorem gives us an expansion when the base has more than two terms, like in (x1+x2+x3)n. (8:07)
3. The Pigeon Hole Principle
This short video introduces the Pigeon Hole Principle, as well as a generalization of it. (2:29)
4. Paul Erdős & the Erdős-Szekeres Theorem
In this video, Professor Trotter explains the Erdős number, and tells some stories about this famous mathematician. The Erdős-Szekeres Theorem is introduced, and a proof of this theorem is provided that uses the Pigeon Hole Principle. (11:33)
5. Easy Application
Here is an easy application of the Pigeon Hole Principle. (3:13)
6. Complexity, Problem Size, & Running Time
Within the framework of a mathematics course, we introduce the idea of a problem size and the concept of running time. (4:37)
7. A Small Catalog of Increasing Functions
In this video, we consider a list of increasing functions, and ask how quickly they tend to infinity. (3:44)
8. Big-Oh Notation & Little-Oh Notation
It is often difficult to say, precisely, what the running times for an algorithm might be. So, we bound them or estimate them. This video introduces big-oh and little-oh notation, and provides a few examples that use these concepts. (7:47)
9. Four Motivating Problems
In this video we start to develop a framework for understanding the difficulty of a problem. Suppose, for example, we have a list of n distinct positive integers. We ask a set of questions about this list that leads us back to the fair division problem. (12:08)
10. Sorting & Stirling’s Approximation
This video introduces the sorting problem, and gives an example of a poor sorting algorithm. Then, a theorem is discussed which gives a lower bound on the length of time an arbitrary sorting algorithm can take in the worst-case scenario. Ultimately, the lower bound is simplified by using Stirling’s approximation. (10:33)
11. An Informal Discussion of Merge Sort
We want to determine an unknown linear order on {1,2,3, … , n}, and we want to do this by dividing the problem into different subproblems. We describe, informally, how we can divide and merge the subproblems, yielding a recurrence relation for the runtime of merge sort. Then, we discuss what the running time of merge sort would be. (8:26)