CS4102 Algorithms - Fall 2019

Course Description: Introduces the analysis of algorithms and the effects of data structures on them. Algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide-and-conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymptotic worst-case, expected time, amortized analysis, and reductions between problems

Availability: It is important to us to be available to our students, and to address their concerns. If you cannot meet with either of us during our office hours, e-mail us and we will find the time to meet. That being said, like everybody else we are quite busy, so it may take a day or more to find a time to meet. And if you have any comments on the course—what is working, what is not working, what can be done better, etc.—we are very interested in hearing about them. Please send Prof. Hott, Prof. Wu, or one of the TAs an e-mail or post privately on Piazza to the instructors. We tend to get bogged down by e-mail as the semester progresses, so seeing us in person (right after lecture, during office hours, etc.) is often a good way to get a more immediate response.

Syllabus: View the full syllabus


We will attempt to keep to this schedule throughout the semester. As we go through the semester, we will add homework dates as well as links to the lecture notes.

Date Topics Slides Readings (optional) Homework
Aug 27 Introduction David - Robbie - HW0 out
Aug 29 Divide and Conquer David - Robbie Ch 3, 4  
Sep 3 Karatsuba, Tree Method David - Robbie Ch 4 HW0 due, HW1 out
Sep 5 Guess and Check David - Robbie - math Ch 4  
Sep 10 Master Theorem, Substitution David - Robbie - math Ch 4  
Sep 12 Closest Pair of Points, Strassen’s Algorithm David - Robbie Ch 33 HW1 due, HW2 out
Sep 17 Quicksort, Quickselect David - Robbie Ch 4, 7  
Sep 19 Median of Medians, Randomized Quicksort David - Robbie Ch 7,9 HW2 due, HW3 out
Sep 24 Randomized Quicksort, Sorting Algorithms David - Robbie Ch 7, 8  
Sep 26 Linear Time Sorting, MSCS David - Nate Intro II, Ch 4, 6, 8  
Oct 1 MSCS, Dynamic Programming David - Robbie Ch 6, 8 HW3 due, HW4 out
Oct 3 Dynamic Programming, Matrix Chain Multiplication David - Robbie Ch 15  
Oct 8 No Class (Reading Day)      
Oct 10 Seam Carving, Longest Common Subsequence David - Robbie Ch 15  
Oct 15 Midterm Exam      
Oct 17 Gerrymandering David - Robbie    
Oct 22 Fun Problems   Ch 16  
Oct 24 Greedy Algorithms      
Oct 29 Greedy Algorithms, Interval Scheduling   Ch 16  
Oct 31 Greedy Algoirthms, Huffman Coding      
Nov 5 Belady Cache Replacement      
Nov 7 Graphs, Minimum Spanning Trees   Ch 23  
Nov 12 Dijkstra’s Algorithm   Ch 24  
Nov 14 Bellman-Ford, Floyd-Warshall   Ch 24  
Nov 19 Max Flow, Min Cut   Ch 26  
Nov 21 Bipartite Matching, Reductions   Ch 26  
Nov 26 No Class (Thanksgiving)      
Nov 28 Reductions, NP-Completeness   Ch 34  
Dec 3 NP-Completeness   Ch 34  
Dec 5 Finale      
Dec 9 Final Exam, 7-9pm