Pre-requisite:  TCS-302 Data Structures with C, Any programming language 

Course Outcomes: 

After completion of the course, the students will be able to: 

CO1: Understand various asymptotic notations to analyze time and space complexity of algorithms.  

CO2: Analyze the various paradigms for designing efficient algorithms using concepts of design and conquer, greedy, and dynamic programming techniques. 

CO3: Provide solutions to complex problems using the concept of backtracking and branch and bound techniques. 

CO4: Apply algorithm design techniques to predict the complexity of certain NP complete problems. 

CO5: Implement Dijkstra’s, Bellman-Ford, Prims, Kruskal’s algorithms to solve the real-world problems like the traveling salesman problem, job sequencing, packet routing etc 

CO6: Apply pattern matching algorithms like Rabin-Karp Algorithm, Brute-force techniques etc, to find a particular pattern.