Fifth Semester
Data Analysis of Algorithm
Course Description: This course introduces basic elements of the design and analysis of computer algorithms. Topics include asymptotic notations and analysis, divide and conquer strategy, greedy methods, dynamic programming, basic graph algorithms, NP-completeness, and approximation algorithms. For each topic, beside in-depth coverage, one or more representative problems and their algorithms shall be discussed.
Course Objectives:
- Analyze the asymptotic performance of algorithms.
- Demonstrate a familiarity with major algorithm design techniques
- Apply important algorithmic design paradigms and methods of analysis.
- Solve simple to moderately difficult algorithmic problems arising in applications.
- Able to demonstrate the hardness of simple NP-complete problems
Contents of Chapter |
|---|
Unit 1: Foundation of Algorithm Analysis (4 Hrs.)
1.1. Algorithm and its properties, RAM model, Time and Space Complexity,
detailed analysis of algorithms (Like factorial algorithm), Concept of
Aggregate Analysis |
Unit 2: Iterative Algorithms (4 Hrs.)
2.1. Basic Algorithms: Algorithm for GCD, Fibonacci Number and analysis of
their time and space complexity |
Unit 3: Divide and Conquer Algorithms (8 Hrs.)
3.1. Searching Algorithms: Binary Search, Min-Max Finding and their Analysis |
Unit 4:Greedy Algorithms (6 Hrs.)
4.1. Optimization Problems and Optimal Solution, Introduction of Greedy
Algorithms, Elements of Greedy Strategy. |
Unit 5: Dynamic Programming (8 Hrs.)
5.1. Greedy Algorithms vs Dynamic Programming, Recursion vs Dynamic
Programming, Elements of DP Strategy |
Unit 6: Backtracking (5 Hrs.)
6.1. Concept of Backtracking, Recursion vs Backtracking |
Unit 7: Number Theoretic Algorithms (5 Hrs.)
7.1. Number Theoretic Notations, Euclid’s and Extended Euclid’s Algorithms
and their Analysis. |
Unit 8: NP Completeness (5 Hrs.)
8.1. Tractable and Intractable Problems, Concept of Polynomial Time and
Super Polynomial Time Complexity |