Lecture Dates Book Sections Comments
11-24 In the last lecture of the course, we will give a survey of what we have done and what I consider to be the main topics in the course.

Videos: 11-24.

11-17, 11-19 34.1, 34.2, 34.3 For the remainder of the course we will covering Computational Complexity. These topics are sometimes covered in EECS 510, but no prior knowledge or background is assumed.

Videos: 11-17 and 11-19.

11-10, 11-12 26.2 The document camera was broken on 11-10, so that lecture had to cancelled. We therefore complete only our discussion of the Maximum Flow Problem this week.

Videos: 11-12.

11-03, 11-05 16.5, 26.1 We will finish talking about the matroid solution for weighted interval scheduling before moving on to the maximum flow problem (chapter 26).

Videos: 11-03 and 11-05.

10-27, 10-29 16.3, 16.4 We covered the dynamic programming solution to the optimal binary tree problem (section 15.5 on 09-17). Huffman Codes are a greedy solution to the same problem. We will also begin talking about Matroids this week, which provide a generic greedy algorithm that works for a very large variety of problems.

Videos: 10-27 and 10-29.

The video for 10-27 was cut off in the beginning. The missing portion covers the same material as the end of lecture 10-22 and the proof of Lemma 16.2 from the text. If you have additional questions on the missing material, please stop by during office hours or schedule a meeting.

10-20, 10-22 25.2, 16.1, 16.2 We will be finishing our discussion of graph algorithms with the Floyd-Warshall algorithm before returning to take a close look at some famous greedy algorithms.

Videos: 10-20 and 10-22.

10-13, 10-15 24.3, 25.1 Dijkstra's algorithm has an interesting history, which you should read about. You should also read more about the Shortest Paths problem. It includes many famous results and is the source of some ongoing research.

Videos: 10-13 and 10-15.

10-06, 10-08 23.2, 24.1, 24.2 We continue our discussion of minimum spanning trees before continuing on to Chapter 24. Chapter 24 contains several famous shortest path algorithms that are not covered in other courses, so please read about them beforehand.

Videos: 10-06 and 10-08.

09-29, 10-01 22.4, 23.1, 23.2 Minimum spanning trees should be covered in EECS 560, but we will cover the basic algorithms for them in greater detail.

Videos: 09-29 and 10-01.

09-22, 09-24 Chapter 22 This chapter should be mostly review, so we will only briefly cover it. If you are unfamiliar with any of the main algorithms (BFS, DFS, Topological Sort), please review them carefully before class.

Videos: 09-22 and 09-24.

09-15, 09-17 15.3, 15.4, 15.5 You should read more about the Longest Common Subsequence problem and the Optimal Binary Search Tree (also known as Dynamic Optimality) problem. These two problems come up often in practice. See also homework problem 15-5 on the Edit Distance problem.

Videos: 09-15 and 09-17.

09-08, 09-10 15.1, 15.2, 15.3 Dynamic programming is a very important and very powerful programming technique. Be sure to carefully read the book sections and make sure that you understand the technique, not just the solution.

Videos: 09-08 and 09-10.

09-01, 09-03 4.4, 4.5, 4.2 You can read more about the Master Theorem on Wikipedia. A slight variant of Strassen's method is considered state-of-the-art for fast matrix multiplication, but asymptotically faster algorithms have been discovered. These faster algorithms are not used in practice because the lower-order terms end up dominating for most matrices that people do calculations on.

Videos: 09-01 and 09-03.

08-25, 08-27 3.1, 3.2, 4.1 Material from 3.1 and 3.2 should be a review, so please read it carefully to make sure everything is familiar.

Videos: 08-27.