An algorithm is a set of steps of operations to solve a problem performing calculation, data processing, and automated reasoning tasks. The important aspects of algorithm design include creating an efficient algorithm to solve a problem in an efficient way using minimum time and space.
The course introduces students to the design of computer algorithms, as well as analysis of algorithms. Algorithm design and analysis provide the theoretical backbone of computer science and are a must in the daily work of the successful programmer. The goal of this course is to provide a solid background in the design and analysis of the major classes of algorithms. At the end of the course students will be able to develop their own versions for a given computational task and to compare and contrast their performance.
After the completion of the course the student will be able to
CO1 :Analyze any given algorithm and express its time and space complexities in asymptotic notations. (Cognitive Level: Apply)
CO2: Derive recurrence equations and solve it using Iteration, Recurrence Tree, Substitution and Master’s Method to compute time complexity of algorithms. (Cognitive Level: Apply)
CO3: Illustrate Graph traversal algorithms & applications and Advanced Data structures like AVL trees and Disjoint set operations. (Cognitive Level: Apply)
CO4:Demonstrate Divide-and-conquer, Greedy Strategy, Dynamic programming, Branch-and Bound and Backtracking algorithm design techniques (Cognitive Level: Apply)
CO5: Classify a problem as computationally tractable or intractable, and discuss strategies to address intractability (Cognitive Level: Understand)
CO6: Identify the suitable design strategy to solve a given problem. (Cognitive Level: Analyze)