0% found this document useful (0 votes)
8 views

DAA_Syllabus

The course 'Design and Analysis of Algorithms' is aimed at second and third-year students in all B.Tech. branches, focusing on algorithm design principles, performance evaluation, and complexity analysis. Key topics include algorithmic paradigms, sorting and searching algorithms, graph algorithms, and NP-completeness. By the end of the course, students will have the skills to synthesize efficient algorithms and apply appropriate techniques to solve complex problems in computer science and software development.

Uploaded by

Shreya Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

DAA_Syllabus

The course 'Design and Analysis of Algorithms' is aimed at second and third-year students in all B.Tech. branches, focusing on algorithm design principles, performance evaluation, and complexity analysis. Key topics include algorithmic paradigms, sorting and searching algorithms, graph algorithms, and NP-completeness. By the end of the course, students will have the skills to synthesize efficient algorithms and apply appropriate techniques to solve complex problems in computer science and software development.

Uploaded by

Shreya Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

DESIGN AND ANALYSIS OF ALGORITHMS

A. OVERVIEW OF THE COURSE:

Name of Course Design and Analysis of Algorithms

Offering Department COMPUTER SCIENCE & ENGINEERING

B.Tech. Branches to which this All Branches


course is offered

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.

C. CO-PO & CO-PSO MAPPING TABLE


CO\P PO PO PO PO PO PO PO PO PO PO1 PO1 PO1 PSO PSO PSO PSO
O 1 2 3 4 5 6 7 8 9 0 1 2 1 2 3 4

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 - -

D. THEORY LECTURE PLAN


NUMBER
S.
CONTENT OF Unit
No.
LECTURES
1 Introduction to RAM model of computation 1
Unit-I
2 Asymptotic notations and their significance 2
(8)
3 Complexity analysis of algorithms 1
4 Master’s theorem 2
Basic introduction to algorithmic paradigms like divide and conquer, greedy, 2
5
backtracking, branch and bound.
CLASS TEST-I
6 Binary search trees 1
7 AVL trees and red-black trees 1
8 B-trees 1
9 Hashing Priority queues, heaps 1
10 Quick sort, Heap sort 1
11 Merge sort 1
12 Sorting in linear time - radix sort, bucket sort 1 Unit-II
13 Counting sort 1 (10)
14 String operations: Boyer Moore algorithm 1
15 Knuth-Morris-Pratt Algorithm 1
Mid-Sem
14 Recall representation of graphs 1
Unit-
15 BFS, DFS, connected components, topological sorting of DAGs 2
III
16 Biconnected components 1 (5)
17 Single source shortest path 1
18 Greedy choice 1
19 Minimum spanning trees -- Prims and Kruskal’s Algorithm 1
20 Dijkstra’s shortest path using arrays and heaps 1
21 Fractional knapsack 1 Unit-
22 Huffman coding (use of priority queue) 1 IV
23 Dynamic Programming: Binomial coefficient 1 (10)
24 Matrix chain multiplication 2
25 Longest common subsequence problem 1
26 0-1 Knapsack problem 1
28 P and NP Classes 1
29 NP-Completeness 1
Unit-V
30 Polynomial time reductions 1
(6)
Discussion of different NP-complete problems like satisfiability, Hamiltonian 3
31
cycle, travelling salesman problem

E. LESSON PLAN for LAB

Lab Class No. Name of the Experiment


Sort a given set of elements using the Quicksort method and determine the time required to sort the
elements. Repeat the experiment for different values of n, the number of elements in the list to be
1
sorted and plot a graph of the time taken versus n. The elements can be read from a file or can be
generated using the random number generator.
Write a program that implements Merge sort sorting methods to sort a given list of integers in
2 ascending order. Compare its running time on input size 10, 100, 1000, 10000 random numbers
with quick sort. Show the comparison result graphically.
Find a subset of a given set S = {s1, s2,..,sn} of n positive integers whose sum is equal to a given
3 positive integer d. For example, if S= {1, 2, 5, 6, 8} and d = 9 there are two solutions {1,2,6} and
{1,8}. A suitable message is to be displayed if the given problem instance doesn't have a solution.
a. Print all the nodes reachable from a given starting node in a digraph using BFS method.
4
b. Check whether a given graph is connected or not using DFS method.
a. Obtain the Topological ordering of vertices in a given digraph
5
b. Compute the transitive closure of a given directed graph.
6 Implement 0/1 Knapsack problem using Dynamic Programming

MID SEMESTER EVALUATION


a. From a given vertex in a weighted connected graph, find shortest paths to other vertices using
7 Dijkstra's algorithm.
b. Find Minimum Cost Spanning Tree of a given undirected graph using Prim’s algorithm.
Implement N Queen's problem using Back Tracking.
8
CLASS TEST-2 (LAB EVALUATION)
9 a) Study of optimization algorithms and their implementation.
b) To apply one nature-inspired optimization algorithm for solving one real
10 Mini Project world problems
11 c) Modify the working of one optimization algorithm and analyze it
12 computational complexity
END SEMESTER EVALUATION

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy