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 Greedy Algorithms, Interval Scheduling David - Robbie Ch 16  
Oct 24 Midterm Review none   HW5 due, HW6 out
Oct 29 Greedy Algorithms, Huffman Coding Robbie Ch 16  
Oct 31 Greedy Algorithms, Belady Cache Replacement David - Robbie Ch 16  
Nov 5 Graphs, Minimum Spanning Tree David - Robbie   HW6 due (Wed), HW7 out
Nov 7 Graphs, Dijkstra’s Algorithm David - Robbie Ch 23  
Nov 12 Bellman-Ford, Floyd-Warshall David - Robbie Ch 24  
Nov 14 Max Flow, Min Cut David Ch 24 HW7 due, HW8 out
Nov 19 Bipartite Matching, Reductions David - Robbie/Nate Ch 26  
Nov 21 Reductions David - Robbie Ch 26 HW8 due, HW9 out
Nov 26 Reductions, NP-Completeness David - Robbie Ch 34  
Nov 28 No Class (Thanksgiving)      
Dec 3 NP-Completeness, Convex Hull David - Robbie    
Dec 5 Finale David - Robbie   HW9 due
Dec 7 Review Session, 1pm, Ols 120      
Dec 9 Final Exam, 7-10pm