CS502 : Fundamentals of Algorithms

I like this Course

Course Info

Course Category

Computer Science/Information Technology

Course Level

Undergraduate

Credit Hours

3

Pre-requisites

CS301

Instructor

Dr. Sohail Aslam
Ph.D Computer Science
University of Illinois at Urbana-Champaign

Course Contents

Introduction Model of computation, 2-d maxima Analysis of 2-d Maxima Runtime analysis 2-d maxima: sweep line algorithm Asymptotic Notation Asymptotic notation, merge sort Analysis of Merge Sort Solving recurrence relations, median selection Median selection - partitioning algorithm Analysis of median selection, binary heaps, sorting Heap sort, analysis of heap sort Quick sort Analysis of quick sort Lower bounds for sorting, Linear time sorting, counting sort Bucket sort, radix sort, dynamic programming, Fibonacci sequence Dynamic programming - edit distance Dynamic programming - edit distance algorithm Dynamic programming - chain matrix multiply Dynamic programming - chain matrix multiply Dynamic programming - 0/1 knapsack Dynamic programming - 0/1 knapsack Greedy algorithms - coin change problem Greedy algorithms - Huffman encoding Greedy algorithms - Huffman encoding Greedy algorithms - Activity scheduling Greedy algorithms - fractional knapsack, Graphs - definitions Graphs - representations, traversal Graphs - breadth-first search, generic traversal algorithms Graphs - generic traversal algorithms Graphs - depth-first search, timestamp structure Graphs - cycles, topological sorting Graphs - strong components Graphs - strong components, minimum spanning tree (MST) Graphs - MST: generic approach Graphs - MST: Kruskal's algorithm Graphs - MST: Prim's algorithm Graphs - shortest paths Graphs - Dijkstra's algorithm Graphs - Dijkstra's algorithm, Bellman-Ford algorithm Graphs - all-pairs shortest path, Floyd-Warshall's algorithm Graphs - Floyd-Warshall algorithm Complexity theory -classes P, NP Complexity theory - Reductions, graph coloring Complexity theory - boolean satisfiability, independent sets