CSE 4833/6833  Introduction to Analysis of Algorithms (Spring 2018) - Tentative Course Schedule 

Date

Topic

Tues 1/9 Course overview and introduction. Overview and discussion of algorithms. Two examples of algorithmic problems: greatest common divisor and integer factorization.
Thu 1/11 Introduction to asymptotic analysis and asymptotic notation. Classes of functions, especially logarithmic, polynomial, and exponential functions.
Tues 1/16 Distinction between worst-case, average-case, and best-case complexity analysis, with examples. Retrieval algorithms: sequential search, binary search, interpolation search, hash-table lookup. Sorting algorithms: insertion sort, selection sort.
Thu 1/18 Quiz and review.  First homework assignment due on Friday.
Tues 1/23
Square root algorithms: binary search, Babylonian method (Newton's method)
Thu 1/25
Recursion: linear recursion, tail recursion, and tree recursion. Merge sort as an example of the divide-and-conquer strategy for algorithm design. Asymptotic analysis of recursive algorithms: solving recurrence relations and the Master theorem.
Tues 1/30 Divide-and-conquer integer multiplication, also known as Karatsuba's algorithm (interesting paper written by Karatsuba)
Thu 2/1 Divide-and-conquer sorting and selection: quicksort and quickselect
Tues 2/6 Heapsort and the binary heap data structure for priority queues
Thu 2/8 Lower bound on the complexity of comparison-based sorting.   Quiz
Tues 2/13 Linear-time sorting algorithms: Counting sort, Radix sort, Bucket sort
Thu 2/15 Computational geometry, the convex hull problem, and the quickhull algorithm
Tues 2/20 Review
Thu 2/22 First exam
Tues 2/27 Greedy algorithm: Huffman encoding algorithm for lossless compression
Thu 3/1 Greedy algorithm: Prim's algorithm for minimal spanning tree problem
Tues 3/6 Limitations of the greedy strategy: Coin change problem, Fractional and 0-1 knapsack problems
Tues 3/20 Dynamic programming and memoization: Fibonacci numbers, Coin change problem, 0-1 knapsack problems
Thu 3/22 Dynamic programming: Longest common subsequence and edit distance problems
Tues 3/27 Single-source shortest path problem: breadth-first search, Dijkstra's algorithm 
Thu 3/29 Single-source shortest path problems continued: Bellman-Ford algorithm
Tues 4/3 Depth-first graph traversal and topological sort
Thu 4/5
Depth-first graph traversal continued: decomposition of a graph into connected components
Tues 4/10 Review
Thu 4/12 Second exam
Tues 4/17 Introduction to NP-complete problems
Tues 4/19 NP-complete problems continued
Tues 4/24
Review
Tues 5/1 Final exam 12 - 3