CS3401- Algorithms Syllabus Regulation 2021 Anna University
Anna University, Subject code – CS3401, deals with the B.E Computer Science and Engineering Semester -IV Algorithms syllabus regulation 2021 relating to affiliated institutions. From here, Students can get assistance in preparing notes to excel in academic performance.
We include every topic of the Algorithms Syllabus, to understand the subject very well. It will help you to improve your idea of syllabus of CS3401-Algorithms Syllabus on your finger tips to go ahead in a clear path of preparation. In this following article Algorithms Syllabus, will help you, Hope you share with your friends.
If you want to know more about the syllabus of B.E Computer Science and Engineering connected to an affiliated institution’s under four-year undergraduate degree programme. We provide you with a detailed Year-wise, semester-wise, and Subject-wise syllabus in the following link B.E Computer Science and Engineering Syllabus Anna University, Regulation 2021.
Aim Of Concept:
- To understand and apply the algorithm analysis techniques on searching and sorting algorithms
- To critically analyze the efficiency of graph algorithms
- To understand different algorithm design techniques
- To solve programming problems using state space tree
- To understand the concepts behind NP Completeness, Approximation algorithms and randomized algorithms.
CS3401- Algorithms Syllabus
Unit I: Introduction
Algorithm analysis: Time and space complexity – Asymptotic Notations and its properties Best case, Worst case and average case analysis – Recurrence relation: substitution method – Lower bounds – searching: linear search, binary search and Interpolation Search, Pattern search: The naïve string-matching algorithm – Rabin-Karp algorithm – Knuth-Morris-Pratt algorithm. Sorting: Insertion sort – heap sort
Unit II: Graph Algorithms
Graph algorithms: Representations of graphs – Graph traversal: DFS – BFS – applications Connectivity, strong connectivity, bi-connectivity – Minimum spanning tree: Kruskal’s and Prim’s algorithm- Shortest path: Bellman-Ford algorithm – Dijkstra’s algorithm – Floyd-Warshall algorithm Network flow: Flow networks – Ford-Fulkerson method – Matching: Maximum bipartite matching
Unit III: Algorithm Design Techniques
Divide and Conquer methodology: Finding maximum and minimum – Merge sort – Quick sort Dynamic programming: Elements of dynamic programming — Matrix-chain multiplication – Multi stage graph — Optimal Binary Search Trees. Greedy Technique: Elements of the greedy strategy – Activity-selection problem –- Optimal Merge pattern — Huffman Trees.
Unit IV: State Space Search Algorithms
Backtracking: n-Queens problem – Hamiltonian Circuit Problem – Subset Sum Problem – Graph colouring problem Branch and Bound: Solving 15-Puzzle problem – Assignment problem Knapsack Problem – Travelling Salesman Problem
Unit V: NP-Complete And Approximation Algorithm
Tractable and intractable problems: Polynomial time algorithms – Venn diagram representation NP-algorithms – NP-hardness and NP-completeness – Bin Packing problem – Problem reduction: TSP – 3-CNF problem. Approximation Algorithms: TSP – Randomized Algorithms: concept and application – primality testing – randomized quick sort – Finding kth smallest number
Practical Exercises:
Searching and Sorting Algorithms
- Implement Linear Search. Determine the time required to search for an element. Repeat the experiment for different values of n, the number of elements in the list to be searched and plot a graph of the time taken versus n.
- Implement recursive Binary Search. Determine the time required to search an element. Repeat the experiment for different values of n, the number of elements in the list to be searched and plot a graph of the time taken versus n.
- Given a text txt [0…n-1] and a pattern pat [0…m-1], write a function search (char pat [ ], char txt [ ]) that prints all occurrences of pat [ ] in txt [ ]. You may assume that n > m.
- Sort a given set of elements using the Insertion sort and Heap sort methods and determine the time required to sort the elements. Repeat the experiment for different values of n, the number of elements in the list to be sorted and plot a graph of the time taken versus n.
Graph Algorithms
- Develop a program to implement graph traversal using Breadth First Search
- Develop a program to implement graph traversal using Depth First Search
- From a given vertex in a weighted connected graph, develop a program to find the shortest paths to other vertices using Dijkstra’s algorithm.
- Find the minimum cost spanning tree of a given undirected graph using Prim’s algorithm.
- Implement Floyd’s algorithm for the All-Pairs- Shortest-Paths problem.
- Compute the transitive closure of a given directed graph using Warshall’s algorithm.
Algorithm Design Techniques
- Develop a program to find out the maximum and minimum numbers in a given list of n numbers using the divide and conquer technique.
- Implement Merge sort and Quick sort methods to sort an array of elements and determine the time required to sort. Repeat the experiment for different values of n, the number of elements in the list to be sorted and plot a graph of the time taken versus n.
State Space Search Algorithms
- Implement N Queens problem using Backtracking.
Approximation Algorithms Randomized Algorithms
- Implement any scheme to find the optimal solution for the Traveling Salesperson problem and then solve the same problem instance using any approximation algorithm and determine the error in the approximation.
- Implement randomized algorithms for finding the kth smallest number. The programs can be implemented in C/C++/JAVA/ Python.
Text Books:
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, “Introduction to Algorithms”, 3rd Edition, Prentice Hall of India, 2009.
- Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran “Computer Algorithms/C++” Orient Blackswan, 2nd Edition, 2019.
References:
- Anany Levitin, “Introduction to the Design and Analysis of Algorithms”, 3rd Edition, Pearson Education, 2012.
- Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman, “Data Structures and Algorithms”, Reprint Edition, Pearson Education, 2006.
- S. Sridhar, “Design and Analysis of Algorithms”, Oxford University Press, 2014.
Related Posts On Semester – IV:
- CS3452 – Theory of Computation
- CS3491 – Artificial Intelligence and Machine Learning
- CS3492 – Database Management Systems
- CS3451 – Introduction to Operating Systems
- GE3451 – Environmental Sciences and Sustainability