DAA_Syllabus
DAA_Syllabus
OVERVIEW:
The course on Design and Analysis of Algorithms is offered to second year/third year students and aims
to provide an in-depth understanding of the principles and methodologies used to design and analyze
algorithms. Through this course, students will learn to evaluate the performance of algorithms using
asymptotic notations and understand various computational models and complexity analysis techniques.
Students will explore fundamental algorithmic paradigms such as divide and conquer, dynamic
programming, greedy methods, and backtracking etc. They will gain practical knowledge in
implementing and analyzing sorting and searching algorithms, including advanced data structures like
AVL trees, red-black trees, and B-trees. The curriculum also covers essential graph algorithms for tasks
such as shortest paths, minimum spanning trees, and topological sorting. Students will delve into the
concept of NP-completeness through classic NP-complete problems like satisfiability, Hamiltonian
cycle, and the traveling salesman problem. By the end of the course, students will be equipped with the
skills to synthesize efficient algorithms for common engineering design situations, analyze their
performance, and apply appropriate algorithmic techniques to solve complex problems. This solid
foundation in algorithm design and analysis will prepare students for advanced studies and careers in
computer science, software development, and related fields.
SYLLABUS
PRE-
COURSE NO TITLE OF THE COURSE COURSE STRUCTURE
REQUISITE
COCSC303/ Design and Analysis of 3L - 0T - 2P Data Structures
CACSC303/ Algorithms
CDCSC303
COURSE OUTCOMES (COs)
After completion of this course, the students are expected to be able to demonstrate the following knowledge, skills,
and attitudes:
1. To be able to analyze the asymptotic performance of algorithms.
2. To implement and analyze the performance of fundamental data structures.
3. Students will gain comprehensive knowledge of graph representation and traversal techniques.
4. To be able to apply important algorithmic design paradigms and methods of analysis.
5. Students will understand the concepts of P and NP classes, and NP-completeness.
COURSE CONTENTS
Unit I
Analysis of Algorithms: Introduction to RAM model of computation, asymptotic notations and their significance,
complexity analysis of algorithms,
, basic introduction to algorithmic paradigms like divide and conquer, greedy, backtracking, branch and bound.
Unit II
Searching and Sorting: Binary search trees, AVL trees and red-black trees, B-trees, hashing Priority queues, heaps.
Sorting: comparison-based sorting - quick sort, heap sort, merge sort: worst and average case analysis. Sorting in
linear time - radix sort, bucket sort, counting sort.
String Operations: Boyer–Moore, Knuth-Morris-Pratt (KMP) Algorithm
Unit III
Application of Graph Traversal Techniques: Recall representation of graphs, BFS, DFS, connected components,
topological sorting of DAGs, biconnected components, single source shortest path.
Unit IV
Greedy Algorithms: Greedy choice, minimum spanning trees -- Prims and Kruskal’s, Dijkstra’s shortest path using
arrays and heaps, fractional knapsack, and Huffman coding (use of priority queue).
Dynamic Programming: Binomial Coefficient, matrix chain multiplication, longest common subsequence problem,
and 0-1 Knapsack problem,
Unit V
NP-Completeness: P and NP classes, NP-completeness, polynomial time reductions, discussion of different NP-
complete problems like satisfiability, Hamiltonian Cycle and travelling salesman problem.
SUGGESTED READINGS
1. T.H. Cormen, C. E. Leiserson, R. L. Rivest “Introduction to Algorithms”, The MIT Press, 4th Edition,
2022
2. Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran, “Computer Algorithms”, Silicon Press, 2nd
Edition, 2007.
3. Michael T. Goodrich and Roberto Tamassia, “Design and Analysis of Algorithms”, Wiley, Edition
2021.
4. Jon Kleinberg And Eva Tardos, “Algorithm Design”, Pearson, 1st Edition, 2005.
CO1 3 3 2 - 2 - - - - - 1 3 2 - -
CO2 3 2 2 2 - - - - - - - 2 3 2 - -
CO3 3 2 2 2 - - - - - - - 2 3 3 1 -
CO4 3 2 3 2 - - - - - - - 2 3 2 2 -
CO5 3 2 2 2 - - - - - - - 2 3 2 - -
F. SELF STUDY
Sr. Topic
No.
1 Counting of primitive operations Unit I
2 Hash Tables, Variants of Quick Sort, Parallel Merge Sort Unit
II
3 Bellman-Ford Algorithm, All-pairs shortest paths Unit
IV
4 Vertex-cover, Clique and Set-cover Unit
V
5 Any topic as suggested by Course instructor