Lecture Dates Book Sections Comments
05-03, 05-05 none Our penultimate lecture will be on the correctness of Dijkstra's Algorithm. In the final class session, we will summarize the contents of the course and discuss the final exam.

Videos: 05-03 and 05-05.

04-26, 04-28 none This week we will begin our final topic of the course, which is graph algorithms. We will be covering Breadth-First Search and Dijkstra's Algorithm (implementation and correctness for both) this week.

Videos: 04-26 and 04-28.

04-19, 04-21 9.1, 9.2, 9.3 We will continue dicussing asymptotics this week, covering Big O, Little o, Big Omega, and Big Theta notations (all defined on the linked page). These concepts come up frequently in algorithm analysis.

Videos: 04-19 and 04-21.

04-12, 04-14 6.1, 9.1 Stirling numbers of the first and second kind are introduced in the first section, and we will be covering some important applications of them before skipping ahead to Chapter 9, which introduces Asymptotic Analysis

Videos: 04-12 and 04-14.

04-05, 04-07 5.1, 6.1 We will be discussing applications of binomial numbers, including to probabilistic computation and the inclusion-exclusion principle. These topics are not included in the textbook. Afterwards, we will continue to chapter 6. Chapter 5, however, has quite a bit of additional material which you should take a look at (if you're interested).

Videos: 04-05 and 04-07.

03-31 5.1 This week we begin discussing combinatorics with Binomial Coefficients.

Video: 04-01.

03-22, 03-24 4.5, 4.6, 4.8 At this point we have built enough machinery to prove Fermat's Little Theorem, Euler's Theorem, and some properties of Mersenne Primes.

Videos: 03-22 and 03-24.

03-08, 03-10 4.1, 4.2 We continue our discussion of number theory by first proving Euclid's Algorithm and then using it to prove the Fundamental Theorem of Arithmetic.

The video of lecture 03-08 only started recording only after ~45 minutes of lecture. To make up for this, the scanned lectures notes are also posted.

Video: 03-08 (notes).

03-01, 03-03 3.4, 4.1, 4.2 This week we begin discussing number theory with the "modulus" (both as a binary operation and as a relation).

Videos: 03-01 and 03-03.

02-22, 02-24 2.6, 3.1 We will continue discussing finite calculus this week before moving on to integer functions, starting with the floor and ceiling functions.

Videos: 02-22 and 02-24.

02-08, 02-10 2.5, 2.6 Finite calculus (section 2.6) is an incredibly powerful tool for evaluating summations. It is worth learning it well.

Videos: 02-08 and 02-10.

02-01, 02-03 2.2, 2.3, 2.5 The textbook walks through some extremely deft summation manipulations. Be sure to read them carefully and make sure that you follow each step.

Videos: 02-01 and 02-03.

01-25, 01-27 1.3, 2.1, 2.2 The solution presented to the Josephus Problem is particularly beautiful. Please be sure to read it carefully. Material from sections 2.1 and 2.2 should be mostly review from Calculus 1 and 2, but there are some details that you should take note of (in particular the Iverson Bracket).

Videos: 01-25 and 01-27.

01-18, 01-20 1.1, 1.2 Videos: 01-20.