Design & Analysis of Algorithms
Design & Analysis of Algorithms
Course Objectives
1. To know the importance of the complexity of a given algorithm.
2. To study various algorithmic design techniques.
3. To utilize data structures and/or algorithmic design techniques in solving new
problems.
4. To know and understand basic computability concepts and the complexity classes P,
NP, and NP-Complete.
Course Outcomes
At the end of the course, students will be able to:
1. Analyze the complexity of the algorithms and use technique divide and conquer to solve
the problems
2. Identify feasible solutions for different problems through greedy method and minimize
the solutions space and to solve the problems through dynamic programming.
3. Solve the problems through graph algorithms.
4. Justify that a certain problem is NP-Complete
5. Understand and apply linear programming concepts to real time applications.
Course Description:
The primary objective of this course is to introduce the topic of algorithms as a precise
mathematical concept, and study how to design algorithms, establish their correctness,
study their efficiency and memory needs. The course consists of a strong mathematical
component in addition to the design of various algorithms.
Text Books:
1. Micheal T. Goodrich and Roberto Tamassia: Algorithm Design: Foundations,
Analysis and Internet examples (John Wiley &Sons, Inc., 2002).
2. Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran. Fundamentalas of Computer
Algorithms Algorithms, MIT Press, Second Edition (Indian reprint: Prentice-Hall),
2008.
Reference Books:
1. Thomas H. Coreman, Charles E. Leiserson and Ronald L. Rivest, “Introduction to
Algorithms”, The MIT Press, 3rd edition, 2009.
2. RCT Lee, SS Tseng, RC Chang and YT Tsai, “Introduction to the Design and Analysis
of Algorithms”, Mc Graw Hill, 2005.
3. Aho, Hopcraft, Ullman, “The Design and Analysis of Computer Algorithms” Pearson
Education, 2008.
Course Contents
Unit I: Introduction 9 lecture hours
Introduction : Algorithms, Analyzing algorithms, Complexity of algorithms, Growth of
functions, Performance measurements, Sorting and order Statistics - Shell sort, Quick sort,
Merge sort, Heap sort, Comparison of sorting algorithms, Sorting in linear time.
Mode of Evaluation: Class Quiz, Assignment, CAT -1, CAT – 2 and ETE.
Theory
Components Internal (50) ETE
Assignment
Mapped Program
Sl. No. Course Outcomes (COs)
Outcomes