Module 1: Introduces algorithms, their efficiency analysis using asymptotic notations, and the brute-force approach with examples like selection sort and sequential search.
Module 2: Explores decrease-and-conquer (insertion sort, topological sorting) and divide-and-conquer methods (merge sort, quick sort, binary tree traversals).
Module 3: Covers transform-and-conquer techniques (AVL trees, Heapsort) and space-time tradeoffs (counting sort, Horspool’s algorithm).
Module 4: Focuses on dynamic programming (Knapsack, Warshall’s, Floyd’s algorithms) and the greedy method (Prim’s, Kruskal’s, Dijkstra’s, Huffman Trees).
Module 5: Discusses the limitations of algorithmic power, including complexity classes (P, NP, NP-Complete) and strategies for coping (Backtracking, Branch-and-Bound, Approximation algorithms)