DAA Syllabus
DAA Syllabus
Course Objectives:
Analyze the asymptotic performance of algorithms.
Write rigorous correctness proofs for algorithms.
Demonstrate a familiarity with major algorithms and data structures.
Apply important algorithmic design paradigms and methods of analysis.
Synthesize efficient algorithms in common engineering design situations.
Note: Examiner will set nine questions in total. Question one will be compulsory. Question
one will have 6 parts of 2.5 marks each from all units and remaining eight questions of 15
marks each to be set by taking two questions from each unit. The students have to attempt
five questions in total, first being compulsory and selecting one from each unit.
Unit 1:
Introduction to Algorithms: Algorithm, Performance Analysis (Time and Space complexity),
Asymptotic Notation (Big OH, Omega and Theta)-best, average and worst-case behaviour.
Elementary Data Structures (Basic terminology of Stacks and Queues, Tree, Graph), Sets and
Disjoint Set Union.
Divide and Conquer: General method, Binary Search, Merge Sort, Quick Sort, and other
sorting algorithms with divide and conquer strategy, Strassen’s Matrix Multiplication
algorithms and analysis of these problems.
Unit 2:
Greedy Method: General method, Fractional Knapsack problem, Job Sequencing with
Deadlines, Minimum Cost Spanning Trees, Single source shortest paths.
Dynamic Programming: General method, Optimal Binary Search Trees, 0/1 knapsack, The
Traveling Salesperson problem.
Unit 3:
Back Tracking: General method, The 8-Queen’s problem, Sum of subsets, Graph Colouring,
Hamiltonian Cycles.
Branch and Bound: The method, 0/1 knapsack problem, Traveling Salesperson problem,
Efficiency considerations.
Unit 4:
NP Hard and NP Complete Problems: Basic concepts, Cook’s theorem, NP hard graph
problems, NP hard scheduling problems, NP hard code generation problems, and Some
simplified NP hard problems.
1. Fundamental of Computer algorithms, Ellis Horowitz and Sartaj Sahni, 1978, Galgotia
Publication
2. Introduction to Algorithms, Thomas H Cormen, Charles E Leiserson and Ronald L
Rivest: 1990, TMH
1. The Design and Analysis of Computer Algorithm, Aho A.V. Hopcroft J.E., 1974,
Addison Wesley.
2. Algorithms-The Construction, Proof and Analysis of Programs, Berlion, P.Bizard, P.,
1986. Johan Wiley & Sons,
3. Writing Efficient Programs, Bentley, J.L., PHI
4. Introduction to Design and Analysis of Algorithm, Goodman, S.E. &Hedetnieni, 1997,
MGH.
5. Introduction to Computers Science- An algorithms approach, Jean Paul Trembley,
Richard B.Bunt, 2002, T.M.H.
6. Fundamentals of Algorithms: The Art of Computer Programming Vol Knuth, D.E.:
1985, Naresh Publication.
Course Outcomes:
To identify and justify correctness of algorithms and to analyse running time of
algorithms based on asymptotic analysis.
To understand when an algorithmic design situation calls for the divide-and-conquer
paradigm. Synthesize divide-and-conquer algorithms.
Describe the greedy paradigm and dynamic-programming paradigm. Explain when
an algorithmic design situation calls for it.
Developing greedy algorithms/dynamic programming algorithms, and analyze it to
determine its computational complexity.
To write the algorithm using Backtracking and Branch and Bound strategy to solve
the problems for any given model engineering problem.