Syllabus
Syllabus
CURRICULUM STRUCTURE
SEMESTER- V
End
Sl. Subject Periods Evaluation Scheme
Subject Semester Total Credit
No.
Codes L T P CT TA Total PS TE PE
Dept.
4 Departmental Elective-I 3 0 0 30 20 50 100 150 3
Elective-I
Dept.
5 Departmental Elective-II 3 0 0 30 20 50 100 150 3
Elective-II
Total 17 3 8 950 22
*The Mini Project or internship (4 weeks) conducted during summer break after IV semester and will be assessed during
V semester.
2. Ian Pouncey, Richard York, “Beginning CSS: Cascading Style Sheets for Web Design”, Wiley India
Understand basic techniques for designing algorithms, including the techniques of recursion, K 2, K 3
CO 5
divide-and-conquer, and greedy.
DETAILED SYLLABUS 3-1-0
Unit Topic Proposed
Lecture
Introduction: Algorithms, Analyzing Algorithms, Complexity of Algorithms, Growth of
I Functions, Performance Measurements, Sorting and Order Statistics - Shell Sort, Quick Sort, Merge 08
Sort, Heap Sort, Comparison of Sorting Algorithms, Sorting in Linear Time.
Advanced Data Structures: Red-Black Trees, B – Trees, Binomial Heaps, Fibonacci Heaps,
II 08
Tries, Skip List
Divide and Conquer with Examples Such as Sorting, Matrix Multiplication, Convex Hull and
Searching.
III Greedy Methods with Examples Such as Optimal Reliability Allocation, Knapsack, Minimum 08
Spanning Trees – Prim’s and Kruskal’s Algorithms, Single Source Shortest Paths - Dijkstra’s and
Bellman Ford Algorithms.
Dynamic Programming with Examples Such as Knapsack. All Pair Shortest Paths – Warshal’s
and Floyd’s Algorithms, Resource Allocation Problem.
IV 08
Backtracking, Branch and Bound with Examples Such as Travelling Salesman Problem, Graph
Coloring, n-Queen Problem, Hamiltonian Cycles and Sum of Subsets.
Selected Topics: Algebraic Computation, Fast Fourier Transform, String Matching, Theory of NP-
V 08
Completeness, Approximation Algorithms and Randomized Algorithms
Text books:
1. Thomas H. Coreman, Charles E. Leiserson and Ronald L. Rivest, “Introduction to Algorithms”, Printice Hall of
India.
2. E. Horowitz & S Sahni, "Fundamentals of Computer Algorithms",
3. Aho, Hopcraft, Ullman, “The Design and Analysis of Computer Algorithms” Pearson Education, 2008.
4. LEE "Design & Analysis of Algorithms (POD)",McGraw Hill
5. Richard E.Neapolitan "Foundations of Algorithms" Jones & Bartlett Learning
6. Jon Kleinberg and Éva Tardos, Algorithm Design, Pearson, 2005.
7. Michael T Goodrich and Roberto Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples,
Second Edition, Wiley, 2006.
8. Harry R. Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins, 1997
9. Robert Sedgewick and Kevin Wayne, Algorithms, fourth edition, Addison Wesley, 2011.
10. Harsh Bhasin,”Algorithm Design and Analysis”,First Edition,Oxford University Press.
KCS553 Design and Analysis of Algorithm Lab
Course Outcome ( CO) Bloom’s Knowledge Level (KL)
DETAILED SYLLABUS
1. Program for Recursive Binary & Linear Search.
2. Program for Heap Sort.
3. Program for Merge Sort.
4. Program for Selection Sort.
5. Program for Insertion Sort.
6. Program for Quick Sort.
7. Knapsack Problem using Greedy Solution
8. Perform Travelling Salesman Problem
9. Find Minimum Spanning Tree using Kruskal’s Algorithm
10. Implement N Queen Problem using Backtracking
11. Sort a given set of n integer elements using Quick Sort method and compute its time complexity. Run the program for
varied values of n> 5000 and record the time taken to sort. Plot a graph of the time taken versus non graph sheet. The
elements can be read from a file or can be generated using the random number generator. Demonstrate using Java how the
divide and- conquer method works along with its time complexity analysis: worst case, average case and best case.
12. Sort a given set of n integer elements using Merge Sort method and compute its time complexity. Run the program for
varied values of n> 5000, and record the time taken to sort. Plot a graph of the time taken versus non graph sheet. The
elements can be read from a file or can be generated using the random number generator. Demonstrate how the divide
and- conquer method works along with its time complexity analysis: worst case, average case and best case.
13.6. Implement , the 0/1 Knapsack problem using
(a) Dynamic Programming method
(b) Greedy method.
14. From a given vertex in a weighted connected graph, find shortest paths to other vertices using Dijkstra's algorithm.
15. Find Minimum Cost Spanning Tree of a given connected undirected graph using Kruskal's algorithm. Use Union-Find
algorithms in your program.
16. Find Minimum Cost Spanning Tree of a given undirected graph using Prim’s algorithm.
17. Write programs to (a) Implement All-Pairs Shortest Paths problem using Floyd's algorithm.
(b) Implement Travelling Sales Person problem using Dynamic programming.
18. Design and implement to find a subset of a given set S = {Sl, S2,.....,Sn} of n positive integers whose SUM is equal to
a given 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}. Display a
suitable message, if the given problem instance doesn't have a solution.
19. Design and implement to find all Hamiltonian Cycles in a connected undirected Graph G of n vertices using
backtracking principle.
Note: The Instructor may add/delete/modify/tune experiments, wherever he/she feels in a justified manner
It is also suggested that open source tools should be preferred to conduct the lab ( C, C++ etc)