Algo Syllabus New

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

Analysis of Algorithms

Syllabus

Prerequisite: Engineering Mathematics, Data Structures and Discrete Mathematics


L-T-P: 4-0-2

Course Description
Algorithms are recipes for solving computational problems. This course teaches techniques
for the design and analysis of efficient algorithms for various applications, emphasizing
methods useful in practice.
Course Objective

Students undergoing this course are expected to:


1 To understand the problems in computing
2 To use/design the most efficient of the available/suitable techniques to solve these
problems
3 To obtain efficiency of the algorithm is to be analyzed in the domains of time, and
space
4 A lab course is also associated with it to strengthen the concepts.

Course Outcomes
CO Course Outcomes (Action verb should be in italics)
Numbers
CO-1 Apply knowledge of computing and mathematics for designing and
implementing problem solving algorithms.
CO-2 Analyze the best, average and worst-case performance of the algorithms
using asymptotic bounds.
CO-3 Choose and apply best suitable algorithm to find optimal solution of
engineering problems
CO-4 Demonstrate a familiarity with various classes of algorithms and data
structures.
CO-5 Realize the limits of computer algorithms via P, NP and NP-complete
problems.

Syllabus

Sorting and complexity analysis: Time and Space Complexity, Different Asymptotic
notations and their mathematical significance. Analysis of sorting algorithms of different
complexity classes: Sorting in Linear time, Heaps, Heat Sort and Priority Queues.
Divide and Conquer Algorithms: Binary Search, Merge sort, Multiplication of Large
Integers, Stassen’s Algorithm, Recurrences and Masters’ Method, Quick Sort and Order
Statistics.
Greedy Algorithms with Graph Recapitulation: Graph representation and Traversals,
Minimum Spanning Trees, Single Source Shortest Paths in a Graph, Bellman-Ford algorithm,
Dijkstra Algorithm, Dial’s Algorithm, Travelling Salesman Problem, Knapsack Problem, Job
Sequencing Problem, Vertex Cover Problem, Maximum Network Flow, Huffman Coding and
Encoding, Coin Change Problem
Dynamic Programming: Principle of Optimality, Memorization vs. Tabulation methods,
Cases where Greedy Algorithms Fails, 0/1 Knapsack, Matrix Chain Multiplication, Optimal
Binary Search Tree, Longest Common Subsequence, All-pairs Shortest Path Problem, Coin
Change Problem, Rod Cutting Problem,
Backtracking: Hamiltonian Cycle, N-Queens Problem, Graph Coloring Problem, Sum of
Subset Problem etc.
Number Theoretic Algorithms: The GCD, Modular Arithmetic, Primality Testing etc.
Text Processing: Naïve String Matching, Rabin Karp Algorithm, String Matching using
Finite Automata, KMP Algorithm.
NP-Completeness and Approximation algorithm:
P class, NP class, NP hard class, NP completes class – their interrelationship, Satisfiability
Problem and Reducibility Examples. Necessity of Approximation Scheme, Polynomial Time
Approximation with Examples.

Text Books

1. Cormen, Thomas H., et al. Introduction to algorithms. MIT press, 2009.


2. Horowitz, Ellis, SartajSahni, and Susan Anderson-Freed. Fundamentals of data
structures. Vol. 20. Potomac, MD: Computer science press, 1976.
3. Sedgewick, Robert, and Philippe Flajolet. An introduction to the analysis of
algorithms. Pearson Education India, 2013.

Reference Books

1. Levitin, Anany. Introduction to Design and Analysis of Algorithms, 2/E. Pearson


Education India, 2008.
2. Kozen, Dexter C. The design and analysis of algorithms. Springer Science & Business
Media, 1992.

Dr. Vibhav Prakash Singh


(CSED, MNNIT Allahabad)

You might also like