CS302 Design and Analysis and Algorithms - Image.Marked
CS302 Design and Analysis and Algorithms - Image.Marked
Course Name
code Credits Introduction
CS302 Design and Analysis of Algorithms 3-1-0-4 2016
Prerequisite: Nil
Course Objectives
To introduce the concepts of Algorithm Analysis, Time Complexity, Space Complexity.
To discuss various Algorithm Design Strategies with proper illustrative examples.
To introduce Complexity Theory.
Syllabus
Introduction to Algorithm Analysis, Notions of Time and Space Complexity, Asymptotic
Notations, Recurrence Equations and their solutions, Master’s Theorem, Divide and Conquer and
illustrative examples, AVL trees, Red-Black Trees, Union-find algorithms, Graph algorithms,
Divide and Conquer, Dynamic Programming, Greedy Strategy, Back Tracking and Branch and
Bound, Complexity classes
Expected outcome
The students will be able to
i. Analyze a given algorithm and express its time and space complexities in asymptotic
notations.
ii. Solve recurrence equations using Iteration Method, Recurrence Tree Method and
Master’s Theorem.
iii. Design algorithms using Divide and Conquer Strategy.
iv. Compare Dynamic Programming and Divide and Conquer Strategies.
v. Solve Optimization problems using Greedy strategy.
vi. Design efficient algorithms using Back Tracking and Branch Bound Techniques for
solving problems.
vii. Classify computational problems into P, NP, NP-Hard and NP-Complete.
Text Books
1. Ellis Horowitz, SartajSahni, SanguthevarRajasekaran, Computer Algorithms, Universities
Press, 2007 [Modules 3,4,5]
2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to
Algorithms, MIT Press, 2009 [Modules 1,2,6]
References
1. Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ullman, The Design and Analysis of
Computer Algorithms, Pearson Education, 1999.
2. Anany Levitin, Introduction to the Design and Analysis of Algorithms, Pearson, 3rd
Edition, 2011.
3. Gilles Brassard, Paul Bratley, Fundamentals of Algorithmics, Pearson Education, 1995.
4. Richard E. Neapolitan, Kumarss Naimipour, Foundations of Algorithms using C++
Psuedocode, Second Edition, 1997.
Course Plan
End
Sem.
Module Contents Hours
Exam
Marks
Introduction to Algorithm AnalysisTime and Space Complexity-
Elementary operations and Computation of Time Complexity-
Best, worst and Average Case Complexities- Complexity 04
I Calculation of simple algorithms 15 %
Recurrence Equations:Solution of Recurrence Equations – 04
Iteration Method and Recursion Tree Methods
Master’s Theorem(Proof not required) – examples, Asymptotic 05
Notations and their properties- Application of Asymptotic
Notations in Algorithm Analysis- Common Complexity Functions
II AVL Trees – rotations, Red-Black Trees insertion and deletion 15%
(Techniques only; algorithms not expected). B-Trees – insertion 05
and deletion operations. Sets- Union and find operations on
disjoint sets.
FIRST INTERNAL EXAM
Graphs – DFS and BFS traversals, complexity, Spanning trees –
III Minimum Cost Spanning Trees, single source shortest path
algorithms, Topological sorting, strongly connected components. 07 15%
Divide and Conquer:The Control Abstraction, 2 way Merge sort, 04
Strassen’s Matrix Multiplication, Analysis
IV Dynamic Programming : The control Abstraction- The 05 15%
Optimality Principle- Optimal matrix multiplication, Bellman-Ford
Algorithm
SECOND INTERNAL EXAM
Analysis, Comparison of Divide and Conquer and Dynamic
Programming strategies 02
Greedy Strategy: - The Control Abstraction- the Fractional
V
Knapsack Problem, 04 20%
Minimal Cost Spanning Tree Computation- Prim’s Algorithm –
Kruskal’s Algorithm. 03
Back Tracking: -The Control Abstraction – The N Queen’s
Problem, 0/1 Knapsack Problem 03
Branch and Bound:Travelling Salesman Problem. 03
VI
Introduction to Complexity Theory :-Tractable and Intractable 20%
Problems- The P and NP Classes- Polynomial Time Reductions - 03
The NP- Hard and NP-Complete Classes
END SEMESTER EXAM