This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
INTENDED AUDIENCE : UG,PG, B. Tech., M. Tech., M. Sc.
PREREQUISITES : NILLINDUSTRY SUPPORT : IT companies
COURSE LAYOUT Week 1: Sorting problem, time complexity, asymptotic analysis.Week 2: Solving recurrence, Divide-and-Conquer.Week 3: Quicksort and Heap Sort, Decision Tree.Week 4: Linear time Sorting, Order Statistics.Week 5: Hash Function, Binary Search Tree (BST) Sort.Week 6: Randomly build BST, Red Black Tree, Augmentation of data structure.Week 7: Van Emde Boas, Amortized analysis, Computational Geometry.Week 8: Dynamic Programming, Graphs, Prim's Algorithms.Week 9: BFS & DFS, Shortest path problem, Dijktra, Bellman Ford.Week 10: All pairs shortest path, Floyd-Warshall, Johnson Algorithm.Week 11: More amortized analysis, disjoint set data structure.Week 12: Network flow, computational complexity.