SILVER OAK UNIVERSITY
College of Technology (01)
Degree Engineering Course (Computer Engincering)
Subject Name: Analysis and Design of Algorithms
Subject Code: 1010043316
Semester: 5"
Prerequisite:
1. Programming (C or C+)
2. Data and file structure
Objectives:
1. Analyze the asymptotic performance of algorithms.
2. Demonstrate a familiarity with major algorithm design techniques.
3. Apply important algorithmic design paradigms and methods of analysis.
4, Solve simple to moderately difficult algorithmic problems arising in applications.
5. Able to demonstrate the hardness of simple NP-complete problems.
‘Teaching and Examination Scheme:
Teaching Scheme Evaluation Scheme Total
Marks
L| T ] P | Contact | Credits Theory Practical
Hours
CIE SE CIE
(TH) | (TH) (PR)
4} 0] 2 6 5 40 60 20 30 150
Content:
Unit | Course Contents Teaching | Weightage
No. Hours
%
Basics of Algorithms and Mathematics:
What is an algorithm?, Properties of Algorithm, ‘Time and
Space Complexity, detailed analysis. of algorithm, 3
Mathematics for Algorithmic Sets, Functions and Relations,
Vectors and Matrices, Linear Inequalities and Linear
Equations.Analysis of Algorithm:
The efficient algorithm, Average, Best and worst case
iis, Amortized analysis , Asymptotic Notations(Big-O,
Big-Q and Big-O Notations their Geometrical Interpretation
and Examples.), Recurrences: Recursive Algorithms and
Recurrence Relations, Solving Recurrences, Analyzing control
statement, Loop invariant and the correctness of the algorithm,
Sorting Algorithms and analysis: Bubble sort, Selection sort,
Insertion sort, Shell sort Heap sort, Sorting in linear time :
Bucket sort, Radix sort and Counting sort
10
20
Divide and Conquer Algorithm:
Introduction, Recurrence and different methods to solve
recurrence, Multiplying large Integers Problem, Problem
Solving using divide and conquer algorithm - Binary Search,
Max-Min problem, Sorting (Merge Sort, Quick Sort), Matrix
Multiplication, Exponential
Dynamic Programming:
Introduction, The Principle of Optimality, Problem Solving
using Dynamic Programming — Calculating the Binomial
Coefficient, Making Change Problem, Assembly
Line-Scheduling, Knapsack problem, All Points Shortest path,
Matrix chain multiplication, Longest Common Subsequence.
15
Greedy Algorithm
General Characteristics of greedy algorithms, Problem solving,
using Greedy Algorithm - Activity selection problem,
Elements of Greedy Strategy, Minimum Spanning trees
(Kruskal’s algorithm, Prim’s algorithm), Graphs: Shortest
paths, The Knapsack Problem, Job Scheduling Problem,
Huffman code.
15
Exploring Graphs:
An introduction using graphs and games, Undirected Graph,
Directed Graph, Traversing Graphs, Depth First Search,
Breath First Search, Topological sort, Connected components
10
Backtracking and Branch and Bound:
Introduction, The Eight queens problem , Knapsack problem,
Travelling Salesman problem, Minimax principle
10
ing Matching:Introduction, The naive string matching algorithm, The
Rabin-Karp algorithm, String Matching with finite automata,
The Knuth-Morris-Pratt algorithm.
Introduction to NP-Completeness:
The class P and NP, Polynomial reduction, NP- Completeness
Problem, NP-Hard Problems. Travelling Salesman problem, 1
9 5
Hamiltonian problem, Approximation algorithms,
Randomized algorithms, Class of problems beyond NP - P
SPACE
Course Outcom
Sr.No. CO statement Unit No | Weightage
%
CO-1 | Analyze the asymptotic performance of algorithms. 12 15%
0-2 _| Derive and solve recurrences describing the performance of 3 13%
divide-and-conquer algorithms. . °
CO-3 _| Find optimal solution by applying various methods. 45 30%
CO-4 | Explain the major graph algorithms and their analyses.
Employ graphs to model engineering problems, when | 6,7 30%
appropriate.
CO-5 _| Apply pattern matching algorithms to find particular pattern. 8 5%
0-6 _ | Differentiate polynomial and nonpolynomial problems. 9 5%
Teaching and Learning Mode:
The course includes a laboratory, where students get the opportunity to practically apply
the theoretical knowledge they have acquired in the lectures
Lectures with attractive PowerPoint presentations
Different experiments shall be carried out during the practical sessions,
List of Experiments/Tutorials:
1. Implementation and Time analysis of sorting algorithmsawhen
Bubble sort, Selection sort, Insertion sort, Merge sort and Quicksort
Implementation and Time analysis of linear and binary search algorithm.
Implementation of max-heap sort algorithm
Implementation and Time analysis of factorial program using iterative and
recursive method
Implementation of a knapsack problem using dynamic programming.
Implementation of chain matrix multiplication using dynamic programming.
Implementation of making a change problem using dynamic programming
Implementation of a knapsack problem using greedy algorithm,
Implementation of Graph and Searching (DFS and BFS).
10. Implement prim’s algorithm
11, Implement kruskal’s algorithm.
12. Implement LCS problem.
Major Equipment/ Instrument(Software/Hardware):
Computers with latest software configuration, Turbo C
Books Recommended:
Introduction to Algorithms, Thomas H. Cormen, Charles
Rivestand Clifford Stein, PHL
Fundamentals of Algorithms — E. Horowitz et al.
Fundamental of Algorithms by Gills Brassard, Paul Bratley, PHT
Introduction to Design and Analysis of Algorithms, Anany Levitin, Pearson.
Foundations of Algorithms, Shailesh R Sathe, Penram
Design and Analysis of Algorithms, Dave and Dave, Pearson.
3, Leiserson, Ronald L
List of Open Source Software/learning website:
NPTEL tutorials,
hitp://www.coursera.org/