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 - handout - all the math Ch 4  
Jan 28 Guess and Check - handout - all the math Ch 4  
Jan 30 Master Theorem, Substitution - handout - all the math Ch 4 HW1 due (2/3 11pm)
Feb 4 Closest Pair of Points - handout Ch 33 HW2 out
Feb 6 Strassen’s Algorithm, Quicksort - handout Ch 4, 7  
Feb 11 Quickselect, Median of Medians - handout Ch 9 HW3 out
Feb 13 Randomized Quicksort, Sorting - handout Ch 7, 8 HW2 due
Feb 18 Sorting Algorithms, Linear Time Sorting - handout Intro II, Ch 4, 6, 8  
Feb 20 Snow Day!!   HW4 out, HW3 due 2/22
Feb 25 Linear Time Sorting, MSCS - handout 6, 8  
Feb 27 Fun Problems    
Mar 4 Dynamic Programming - handout Ch 15 HW4 due
Mar 6 Midterm Exam    
Mar 11 Spring Break    
Mar 13 Spring Break    
Mar 18 Matrix Chain Multiplication, Seam Carving - handout Ch 15 HW5 out
Mar 20 Exam Review, Longest Common Subsequence - handout -  
Mar 25 Gerrymandering - handout Ch 16 HW6 out
Mar 27 Greedy Algorithms, Interval Scheduling - handout Ch 16 HW5 due
Apr 1 Greedy Algoirthms, Huffman Coding - handout -  
Apr 3 Belady Cache Replacement - handout - HW6 due (4/5)
Apr 8 Graphs, Minimum Spanning Trees - handout Ch 23 HW7 out
Apr 10 Dijkstra’s Algorithm - handout Ch 24  
Apr 15 Bellman-Ford, Floyd-Warshall - handout Ch 24 HW8 out, HW7 due (4/16)
Apr 17 Max Flow, Min Cut - handout Ch 26  
Apr 22 Bipartite Matching, Reductions - handout Ch 26 HW9 out, HW8 due (4/23)
Apr 24 Reductions, NP-Completeness - handout Ch 34  
Apr 29 NP-Completeness, Finale - handout Ch 34 HW9 due (4/30)
May 1 Exam Review Session, MEC 205, 4pm    
May 4 Final Exam, 2-5pm