CS4102 Algorithms - Spring 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 me to be available to our students, and to address their concerns. If you cannot meet with me during our office hours, e-mail me and we will find the time to meet. That being said, like everybody else I am 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.—I am very interested in hearing about them. There is an anonymous feedback tool through Collab, or you can send me or one of the TAs an e-mail. 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, I will add homework dates.

Date Topic Readings (optional) Homework
Jan 14 Introduction - HW0 out
Jan 16 Divide and Conquer Ch 3, 4  
Jan 21 MLK Day - No class   HW0 due, HW1 out
Jan 23 Karatsuba, Tree Method Ch 4  
Jan 28 Guess and Check Ch 4  
Jan 30 Master Theorem, Substitution Ch 4 HW1 due
Feb 4 Closest Pair of Points Ch 33 HW2 out
Feb 6 Strassen’s Algorithm, Quicksort Ch 4, 7  
Feb 11 Quickselect, Median of Medians Ch 9 HW3 out
Feb 13 Randomized Quicksort, Sorting Ch 7, 8 HW2 due
Feb 18 Sorting Algorithms Intro II, Ch 6  
Feb 20 Linear Time Sorting Ch 8, 4 HW3 due, HW4 out
Feb 25 Dynamic Programming Ch 15  
Feb 27 Fun Problems    
Mar 4 Matrix Chain Multiplication Ch 15 HW4 due
Mar 6 Midterm Exam    
Mar 11 Spring Break    
Mar 13 Spring Break    
Mar 18 Longest Common Subsequence, Seam Carving Ch 15  
Mar 20 Gerrymandering -  
Mar 25 Greedy Algorithms, Interval Scheduling Ch 16  
Mar 27 Huffman Coding Ch 16  
Apr 1 Belady Cache Replacement -  
Apr 3 Graphs, Minimum Spanning Trees Ch 23  
Apr 8 Dijkstra’s Algorithm Ch 24  
Apr 10 Bellman-Ford Ch 24  
Apr 15 Max Flow, Min Cut Ch 26  
Apr 17 Bipartite Matching, Reductions Ch 26  
Apr 22 Reductions, NP-Completeness Ch 34  
Apr 24 NP-Completeness Ch 34  
Apr 29 Finale -  
May 4 Final Exam, 2-5pm