DAA Lesson Plan 19 20
DAA Lesson Plan 19 20
DAA Lesson Plan 19 20
Lesson Plan
I. Course Overview
Introduction to fundamental techniques for designing and analyzing algorithms, including asymptotic analysis; divide-
and-conquer algorithms and recurrences; greedy algorithms; data structures; dynamic programming; graph algorithms;
and randomized algorithms.
II. Prerequisite(s):
III. Assessment:
FORMATIVE ASSESMENT
Mid Semester Test I for 40 Marks in first 21/2 units is
conducted at the starting of 9th week.
V. Course Outcomes:
Students who complete the course will have demonstrated the ability to do the following:
Argue the correctness of algorithms using inductive proofs and invariants.
Analyze worst-case running times of algorithms using asymptotic analysis.
Describe the divide-and-conquer paradigm and explain when an algorithmic design situation calls
for it. Recite algorithms that employ this paradigm. Synthesize divide-and-conquer algorithms.
Derive and solve recurrences describing the performance of divide-and-conquer algorithms.
Describe the dynamic-programming paradigm and explain when an algorithmic design situation
calls for it. Recite algorithms that employ this paradigm. Synthesize dynamic-programming
algorithms, and analyze them.
Describe the greedy paradigm and explain when an algorithmic design situation calls for it. Recite
algorithms that employ this paradigm. Synthesize greedy algorithms, and analyze them.
Explain the major graph algorithms and their analyses. Employ graphs to model engineering
problems, when appropriate. Synthesize new graph algorithms and algorithms that employ graph
computations as key components, and analyze them.
Explain the different ways to analyze randomized algorithms (expected running time, probability of
error). Recite algorithms that employ randomization. Explain the difference between a randomized
algorithm and an algorithm with probabilistic inputs.
Analyze randomized algorithms. Employ indicator random variables and linearity of expectation to
perform the analyses. Recite analyses of algorithms that employ this method of analysis.
Explain what amortized running time is and what it is good for. Describe the different methods of
amortized analysis (aggregate analysis, accounting, potential method). Perform amortized analysis.
Explain what competitive analysis is and to which situations it applies. Perform competitive
analysis.
Compare between different data structures. Pick an appropriate data structure for a design situation.
Explain what an approximation algorithm is, and the benefit of using approximation algorithms. Be
familiar with some approximation algorithms, including algorithms that are PTAS or FPTAS.
Analyze the approximation factor of an algorithm.
VI. Program outcomes:
VII. Syllabus:
UNIT-I
Introduction to Algorithm, Algorithm specification , performance analysis, Asymptotic Notations
Divide and Conquer :General Method, Binary search, finding the maximum and minimum ,merge sort, Quick
sort ,Selection , Stressen’s matrix multiplication ,Analysis of Divide and Conquer run time Recurrence Relations.
UNIT-II
Greedy Method: General Method ,Knapsack problem , job scheduling with deadlines, minimum cost spanning
trees-Prim’s and Kruskal’s Algorithm, Optimal storage on tapes ,single source shortest paths- Dijkastra’s ,Bell
Man ford And Wars hall’s Algorithm.
Dynamic Programming: General Method, Multi stage graphs , All-pairs shortest paths, optimal binary search
trees,0/1 knapsack ,the travelling sales person problem.
UNIT-III
Basic Traversal and search techniques: Techniques for binary trees, techniques for graphs ,AND/OR Graphs,
connected components and spanning trees, Bi-Connected components and Dfs
Back tracking: General Method,8-queens problem ,sum of subsets problem, graph coloring and Hamiltonian
cycles, knapsack problem.
UNIT-IV
Branch bound: The method ,Travelling salesperson,0/1 knapsack problem, efficiency considerations
Lower Bound Theory: Comparision trees of sorting and Searching , Lower bound through reductions-
multiplying triangular matrices ,inverting a lower trainger matrix,computing the transitive closure.
UNIT-V
Network Flow Problems:
NP-Hard and NP-Complete problems:Np Hardness ,Scheduling Problems ,NP-Completeness, Cook’s theorem
(with out proof),Reductions for clique Decision problem ,Chromatic number decision problem .
Text Books
References
7. Donald E. Knuth, “The Art of Computer Programming”, Volumes 1& 3 Pearson Education, 2009. Steven S.
Skiena, “The Algorithm Design Manual”, Second Edition, Springer, 2008.
VIII. Course Plan:
Session
No
Dates Ref, Page No
Topics to be covered
1 Introduction, Algorithm, Notion of algorithm 03/07/2019 1 (1-7)
2(5-11)
2 Fundamentals of Algorithmic Problem Solving-steps in designing and 03/07/2019 1 (9-16)
analyzing an algorithm 2(30-39)
3 06/07/2019 1(18-23)
Important Problem Types-Sorting.searching, string processing,
graph, geometric, numeric and combinatorial problems
4 Fundamentals of the Analysis of Algorithm Efficiency, Analysis Framework, 10/07/2019 1(41-45)
measuring input size, units for measuring running time,
5 Analysis Framework, Orders of growth, worst, best and average case 13/07/2019 1(45-50)
analysis, recapitulation of Analysis Framework.
2(23-29)
6 Asymptotic Notations and its properties- Informal, Big-oh, Big-omega, Big- 13/07/2019 1(52-58)
theta notation
2(43-53)
4(31-57)
7 Mathematical analysis for Non-recursive algorithms –General plan for 17/07/2019 1(61-67)
analyzing time efficiency
8 Mathematical analysis for Recursive algorithms –General plan for analyzing 17/07/2019 1(70-76)
time efficiency
2(65-75)
3(401-405)
14 Assignment problem 27/07/2019 1(119-121)
4(498-501)
2(93-97),5
2(170-182)
4(120-129)
2(397-403)
2(425-427)
4(427-431)
2(634-636)
2(631-633)
2(846-850)
31 Brute Force -sequential search,brute force string manipulation 14/09/2019 1(351-359)
2(864-878)
32 Closest-Pair and Convex-Hull Problems 14/09/2019 1(361-369)
2(708-714)
4(258-262)
2(732-735)
2(732-735)
4(217-222)
4(533-537)
2(1048-
1053)
2(1049-
1052)
IX. Mapping course outcomes leading to the achievement of the program outcomes:
By covering the syllabus a student can understand the various algorithmic techniques and easily solved
any type problem.Student is able to develop the case analysis and performance analysis through no of
notations.
By mapping CO-1 to the PO’s A & B which are related to the course CO1: The student is able to
analyze and Implement Problems
By mapping CO-2 to the PO’s C & E, which are related to the course CO2: The student is able to
analyze the problem and solutions using various software architecture analyzing approaches.
By mapping CO-3 to the PO’s C which are related to the course CO3: The student is able to understand
the purpose of different software engineering project teams.
By mapping CO-4 to the PO’s D & S which are related to the course CO4: The student is able to
understand the Purpose of different software engineering architecture plans.
By mapping CO-5 to the PO’s E & S which are related to the course CO5: The student is able to
understand the Purpose of different architecture description languages.
By mapping CO-6 to the PO’s E which are related to the course CO6: The student is able to understand
the concept of architecture implementation and various goals of analysis.
By mapping CO-7 to the PO’s C which are related to the course CO7: The student is able to different
conceptual and technical skills in the analysis and design.
By mapping CO-8 to the PO’s K which are related to the course CO8: The student is able to understand
the software engineering CASE tools.
By mapping CO-9 to the PO’s H which are related to the course CO9: The student is able to understand
the purpose of why we are going for ADL and its implementation.
By mapping CO-10 to the PO’s H which are related to the course CO10: The student is able to develop
small projects using software architecture concepts and this knowledge will help him in further studies
and industry needs.