Algorithm Design - Detailed Checklist
Module 1: Introduction (8 Hours)
[ ] 1.1 Performance analysis
[ ] - Space and time complexity
[ ] - Growth of function
[ ] - Big-Oh, Omega, Theta notation
[ ] - Mathematical background for algorithm analysis
[ ] - Complexity classes: P, NP, NP-Hard, NP-Complete
[ ] - Selection sort: Analysis
[ ] - Insertion sort: Analysis
[ ] 1.2 Recurrences
[ ] - Substitution method
[ ] - Recursion tree method
[ ] - Master method
Module 2: Divide and Conquer Approach (6 Hours)
[ ] 2.1 General Method
[ ] - Merge sort
[ ] - Quick sort
[ ] - Finding minimum and maximum algorithms and their analysis
[ ] - Binary search: Analysis
Module 3: Greedy Method Approach (6 Hours)
[ ] 3.1 General Method
[ ] - Dijkstra Algorithm (Single source shortest path)
[ ] - Fractional Knapsack problem
[ ] - Job sequencing with deadlines
[ ] - Minimum cost spanning trees:
[] - Kruskal’s algorithm
[] - Prim’s algorithm
Module 4: Dynamic Programming Approach (9 Hours)
[ ] 4.1 General Method
[ ] - Multistage graphs
[ ] - Bellman-Ford Algorithm (Single source shortest path)
[ ] - Floyd-Warshall Algorithm (All pair shortest path)
[] - Assembly-line scheduling problem
[] - 0/1 Knapsack problem
[] - Travelling Salesperson problem
[] - Longest common subsequence
Module 5: Backtracking and Branch and Bound (6 Hours)
[ ] 5.1 Backtracking
[ ] - N-queen problem
[ ] - Sum of subsets
[ ] - Graph coloring
[ ] 5.2 Branch and Bound
[ ] - Travelling Salesperson Problem
[ ] - 15 Puzzle problem
Module 6: String Matching Algorithms (4 Hours)
[ ] 6.1 String Matching
[ ] - Naïve string-matching algorithm
[ ] - Rabin-Karp algorithm
[ ] - Knuth-Morris-Pratt algorithm