0% found this document useful (0 votes)
64 views4 pages

CourseHandout BTechCSE DAA Autumn2023

The document is a course handout for the Design and Analysis of Algorithms course at the National Institute of Technology, Jamshedpur, for the Autumn Semester 2023. It outlines course objectives, topics to be covered, evaluation schemes, and instructor contact information. Key areas of focus include algorithm properties, design strategies, algorithm analysis, and various algorithmic techniques such as dynamic programming and graph algorithms.

Uploaded by

Naved Hashmi
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)
64 views4 pages

CourseHandout BTechCSE DAA Autumn2023

The document is a course handout for the Design and Analysis of Algorithms course at the National Institute of Technology, Jamshedpur, for the Autumn Semester 2023. It outlines course objectives, topics to be covered, evaluation schemes, and instructor contact information. Key areas of focus include algorithm properties, design strategies, algorithm analysis, and various algorithmic techniques such as dynamic programming and graph algorithms.

Uploaded by

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

National Institute of Technology, Jamshedpur

Department of Computer Science and Engineering

Autumn Semester Aug 2023-Dec 2023


Course Handout
Course Code: CS 1302 (Theory course) and CS 1307 (Laboratory course)
Course Name: Design and Analysis of Algorithms
Instructor: Rajiv R. Suman (CSE dept)

Pre-requisite: Data Structure CS 1304

Course Objectives:
After completion of this course, the student is supposed to have a sound concept of:
(1) Notion of algorithms and its properties.
(2) Various strategies for design of algorithms for most classical computing problems of science and
engineering.
(3) Expressing the algorithm formally using pseudo code.
(4) Validating an algorithm designed to solve a particular problem. This involves giving formal proof
of correctness of the algorithm.
(5) Algorithm analysis, i.e., logically analyzing the pseudo code of an algorithm for its time and space
complexities. This also involves comparing pros and cons of various algorithms designed for the
same problem.
(6) Implementing algorithms using some programming language and debugging them. Program based
on some algorithm is written and executed on sample data sets and tested to determine whether the
output produced are correct. If not, algorithm and corresponding program are corrected so as to
ensure correct design and implementation.
(7) Profiling or performance measurement of algorithms analysis, i.e., practical analysis of algorithms
by implementing them using some programming language, executing a correct program with
different data sets, test cases, etc and measuring actual time and space it takes to compute the
results.
Scope:
Data structure along with Design and analysis of algorithms finds its application in almost all the
areas of Computer Science & Engineering.

Course Description:
Introduction to algorithms, its fundamental properties, concept of algorithm analysis for asymptotic
time and space complexities, recurrence relations, review of important data structures (stack, queue,
trees, binary trees, heaps, priority queues, graphs, sets and disjoint set union, Union and Find algorithm
for sets, etc), searching (sequential, binary and hash searching techniques) and sorting algorithms
(insertion sort, bubble sort, selection sort, heap sort, shell sort, address calculation sort, radix sort, radix
exchange sort, merge sort, quick sort, counting sort, etc), lower bound for comparison based sorting,
linear time sorting, algorithm design strategies: divide and conquer (binary search on ordered list,
merge sort, quick sort, finding max and min, fast algorithm to find 2nd largest item in an unordered list,
selection of kth smallest value in a list, Integer and matrix multiplications, etc), greedy method (Prim-
Jarnik’s , Kruskal’s, and Baruvka’s algorithms for minimum spanning tree, Dijkstra’s shortest path
algorithm, job sequencing with deadlines, activity selection problem, fractional knapsack problem, coin
changing problem, Huffman code for data compression, etc), dynamic programming (matrix chain
multiplication, longest common subsequence, Floyd Warshall shortest path algorithm, Bellman Ford
shortest path algorithm, 0/1 knapsack problem, coin changing problem, Tiling problem, optimal binary
Page 1 of 4
search tree, optimal polygon triangulation, rod cutting problem, etc), backtracking strategy (n-queens
problem, knight’s tour on chessboard problem, sum of subset problem, 0/1 knapsack problem, graph
coloring problem, Hamiltonian cycle problem, etc), branch and bound method (15-puzzle problem,
travelling sales person problem, 0/1 knapsack problem, etc), graph algorithms (BFS, DFS, and D-search
in a graph, finding connected components, articulation points and bridges in graphs, topological sort,
Maximum flow in flow networks, Ford-Fulkerson method, etc), string matching algorithms (naive string
matching, Rabin-Karp Algorithm, finite automata based pattern matching, KMP algorithm, Boyer Moore
algorithm, approximate and partial matching algorithms, Aho–Corasick algorithm, etc), problem classes
P, NP, co-NP, NP-hard and NP-complete problems (formula satisfiability, circuit satisfiability, 3-CNF
satisfiability, clique decision problem, vertex cover problem, graph isomorphism, Hamiltonian cycle
problem, bin-packing problem, travelling sales person problem, etc ), reducibility, non-deterministic
algorithms, Cooks theorem, introduction to approximation algorithms for NP-hard problems.

Text Book:
1. Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, Clifford Stein, “Introduction to
Algorithms”, 3rd Edition, PHI, Delhi.

Reference Books:
2. Ellis Horowitz, Sartaj Sahni, “Fundamentals of Data Structure in C”, 2nd Edition, University Press,
Hyderabad, India.
3. Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran, “Fundamentals of Computer Algorithms”,
2nd Edition, 2010, University Press, Hyderabad, India.
4. Sara Baase and Allen Van Gelder, “Computer Algorithms”, 3rd Ed. 2009, Pearson Education,
India.
5. Michael T. Goodrich and Roberto Tamassia, “Algorithm Design”, Wiley Student Edition, Wiley
India, 2002.
6. Alfred V. Aho, John E. Hopcroft and Jeffrey D. Ulman, “The Design and Analysis of Computer
Algorithms”, Pearson, Delhi, 2011.
7. Robert Sedgewick, Kevin Wayne, “Algorithms”, 4th Edition, Indian Edition available??
8. Anany Levitin, “Introduction to the Design and Analysis of Algorithms”, 2nd Edition, 2008,
Pearson Education, India.
9. Steven S. Skiena, “The Algorithm Design Manual”, Springer Germany, 2nd ed. 2008.
10. Gilles Brassard and Paul Bratley, “Fundamentals of Algorithmics”, 3rd Edition 2015, Pearson
Education, India.
11. Jon Kleinberg, “Algorithm Design”, 1/e, 2014, Pearson Education, India.
12. Donald E. Knuth, “The Art of Computer Programming”, Vol-I, II, & III (three books), 3rd Ed,
PHI, Delhi.
13. Niklaus Wirth, “Algorithm + Data Structure = Programs”, Prentice-Hall Series, 1976.
14. D. Samanta, “Classic Data Strucures”, 2nd Ed, 2013, PHI Delhi.
15. Rajeev Motwani, Prabhakar Raghavan, “Randomized Algorithms”, Cambridge University Press,
1995.
16. Vijay V. Vazirani, “Approximation Algorithms”, Springer, Springer-Verlag Berlin Heidelberg, 2003.
17. Ananth Grama, Vipin Kumar, Anshul Gupta, and George Karypis, “An Introduction to Parallel
Computing: Design and Analysis of Algorithms”, 2/e, Pearson Education, India.

Page 2 of 4
Course Plan
Lecture Refer to
Topics to be covered Learning Objective
No. Books
Introduction, its fundamental properties, role Fundamental concepts
1 *T1, *R2
of algorithms in computing
Concept of asymptotic time and space
complexities using O-notation, Ω-notation, θ-
Concept of asymptotic time
2-3 notation, o-notation and ω-notation, solving T1, R2
and space complexities
recurrence relations for time and space
complexities, the master method.
review of important data structures (stack,
Concept of important data
queue, trees, binary trees, heaps, priority T1, R2,
4-5 structures required to learn
queues, sets and disjoint set union, Union and *R4
later topics
Find algorithm for sets, graphs, etc)
searching (sequential, binary and hash Learn different searching
6-7 T1
searching techniques) strategies
sorting algorithms (bubble sort, insertion sort,
selection sort, heap sort, shell sort, address Learn sorting algorithms,
calculation sort, radix sort, radix exchange their pros, cons, etc, T1, R2,
8-10
sort, merge sort, quick sort, etc), lower bound comparison of sorting R13
for comparison based sorting, linear time algorithms,
sorting (counting sort, bucket sort)
divide and conquer (binary search on ordered
Learn to apply divide and
list, merge sort, quick sort, finding max and
11-12 conquer strategy to suitable T1, R2
min, selection of kth smallest value in a list),
problems
randomized quick sort, balanced partitioning
greedy method (Prim-Jarnik’s , Kruskal’s, and
Learn to apply greedy
13-14 Baruvka’s algorithms for minimum spanning T1, R2
strategy to suitable problems
tree)
greedy method continued: Dijkstra’s shortest Learn to apply greedy
15-16 path algorithm, job sequencing with deadlines, method for some more T1, R2
fractional knapsack problem, etc), problems
Learn a versatile solution
17 Bellman Ford shortest path algorithm algorithm for single source T1, R4
shortest path problem
dynamic programming, problems with
Learn to dynamic
optimal substructure (matrix chain
programming, i.e., bottom
multiplication, longest common subsequence, T1, R2-5,
18-21 up solution strategy to
Floyd Warshall shortest path algorithm, 0/1 R4
suitable optimization
knapsack problem, coin changing problem,
problems
Tiling problem, etc)

Page 3 of 4
Refer to
Lecture
Topics to be covered Learning Objective Chapter,
No.
see (Book)
backtracking strategy (n-queens problem,
Learn techniques to solve
sum of subsets problem, knight’s tour on
some classical computing
22-24 chessboard problem, 0/1 knapsack problem, R2-7
problems using efficient
graph coloring problem, Hamiltonian cycle
backtracking strategies
problem, etc)
branch and bound method (15-puzzle Learn a variant of
25-26 problem, travelling sales person problem, 0/1 backtracking strategy and its R2-8, R9
knapsack problem, etc) applications
graph algorithms (BFS, DFS, and D-search in
a graph, connected components, articulation Learn essential graph based
27-31 T1, R2
point, bridge, topological sort, maximum flow algorithms
in Flow networks, etc)
string matching algorithms (naive string Learn string matching and
matching, finite automata based pattern text processing algorithms,
32-35 T1,R4
matching, Boyer Moore algorithm, Rabin-Karp brute force based and
Algorithm, KMP algorithm) intelligent techniques
problem classes P, NP, co-NP, NP-hard and
NP-complete problems (formula satisfiability,
Learn the important concept
circuit satisfiability, 3-CNF satisfiability,
of problem classifications
clique decision problem, vertex cover problem,
based on their time
36-39 graph isomorphism, Hamiltonian cycle T1
complexities, learn whether
problem, bin-packing problem, travelling sales
it is feasible to attempt to
person problem, etc ), reducibility, non-
solve a problem
deterministic algorithms, Cooks theorem,

Learn to find the


approximate solutions of
Introduction to approximation algorithms
40-41 problems that cannot be R2-12
for NP-hard problems.
solved optimally in
reasonable time
Review of concepts discussed, questions, Consolidate the concepts
42-45
answers, tutorials, etc learned in previous classes
*T1: Text book at serial number 1. R2: reference book at serial number 2.
*R4: reference book at serial number 4.
Evaluation Scheme:
EC Evaluation Nature of
Duration Weight Date & Time
No. Component Component
1. Mid.d Sem Exam 2 Hours 30% Closed Book
2. End Sem Exam 3 Hours 50% Closed Book
3. Assignments Two weeks 10% Take home
4. Surprise Quizzes, Viva 5 min 10% Closed Book
voce, Attendance etc
Time to meet the instructor beyond the class hours:
Monday to Friday at 4:30 pm, Room No. SA-011 in CSE dept
Instructor’s Email-id: [email protected], Phone: 8434765977

Page 4 of 4

You might also like