0% found this document useful (0 votes)
30 views2 pages

Algorithm Design and Analysis Course

Uploaded by

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

Algorithm Design and Analysis Course

Uploaded by

sanjaykarri001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

Course Title: Design and Analysis of Algorithms

Course no: CSC314

Semester: V

Nature of course: Theory + Lab

Full Marks: 60 + 20 + 20

Pass Marks: 24 + 8 + 8

Credit Hours: 3

Course Description : This course introduces basic elements of the design and
analysis of computer algorithms. Topics include asymptotic notations and analysis,
divide and conquer strategy, greedy methods, dynamic programming, basic graph
algorithms, NP-completeness, and approximation algorithms. For each topic, beside
in-depth coverage, one or more representative problems and their algorithms shall
be discussed.

Course Objective : Analyze the asymptotic performance of algorithms. Demonstrate a


familiarity with major algorithm design techniques Apply important algorithmic
design paradigms and methods of analysis. Solve simple to moderately difficult
algorithmic problems arising in applications. Able to demonstrate the hardness of
simple NP-complete problems

Course Contents:
Unit 1. Foundation of Algorithm Analysis4 Hrs.
1.1. Algorithm and its properties, RAM model, Time and Space Complexity, detailed
analysis of algorithms (Like factorial algorithm), Concept of Aggregate Analysis
1.2. Asymptotic Notations: Big-O, Big-Ω and Big-Ө Notations their Geometrical
Interpretation and Examples.
1.3. Recurrences: Recursive Algorithms and Recurrence Relations, Solving
Recurrences (Recursion Tree Method, Substitution Method, Application of Masters
Theorem)

Unit 2. Iterative Algorithms4 Hrs.


2.1. Basic Algorithms: Algorithm for GCD, Fibonacci Number and analysis of their
time and space complexity
2.2. Searching Algorithms: Sequential Search and its analysis
2.3. Sorting Algorithms: Bubble, Selection, and Insertion Sort and their Analysis

Unit 3. Divide and Conquer Algorithms8 Hrs.


3.1. Searching Algorithms: Binary Search, Min-Max Finding and their Analysis
3.2. Sorting Algorithms: Merge Sort and Analysis, Quick Sort and Analysis (Best
Case, Worst Case and Average Case), Heap Sort (Heapify, Build Heap and Heap Sort
Algorithms and their Analysis), Randomized Quick sort and its Analysis
3.3. Order Statistics: Selection in Expected Linear Time, Selection in Worst Case
Linear Time and their Analysis.

Unit 4. Greedy Algorithms6 Hrs.


4.1. Optimization Problems and Optimal Solution, Introduction of Greedy Algorithms,
Elements of Greedy Strategy.
4.2. Greedy Algorithms: Fractional Knapsack, Job sequencing with Deadlines,
Kruskal’s Algorithm, Prims Algorithm, Dijkstra’s Algorithm and their Analysis
4.3. Huffman Coding: Purpose of Huffman Coding, Prefix Codes, Huffman Coding
Algorithm and its Analysis
Unit 5. Dynamic Programming8 Hrs.
5.1. Greedy Algorithms vs Dynamic Programming, Recursion vs Dynamic Programming,
Elements of DP Strategy
5.2. DP Algorithms: Matrix Chain Multiplication, String Editing, Zero-One Knapsack
Problem, Floyd Warshwall Algorithm, Travelling Salesman Problem and their Analysis.
5.3. Memoization Strategy, Dynamic Programming vs Memoization

Unit 6. Backtracking5 Hrs.


6.1. Concept of Backtracking, Recursion vs Backtracking
6.2. Backtracking Algorithms: Subset-sum Problem, Zero-one Knapsack Problem, N-
queen Problem and their Analysis.

Unit 7. Number Theoretic Algorithms5 Hrs.


7.1. Number Theoretic Notations, Euclid’s and Extended Euclid’s Algorithms and
their Analysis.
7.2. Solving Modular Linear Equations, Chinese Remainder Theorem, Primility
Testing: MillerRabin Randomized Primility Test and their Analysis

Unit 8. NP Completeness5 Hrs.


8.1. Tractable and Intractable Problems, Concept of Polynomial Time and Super
Polynomial Time Complexity
8.2. Complexity Classes: P, NP, NP-Hard and NP-Complete
8.3. NP Complete Problems, NP Completeness and Reducibility, Cooks Theorem, Proofs
of NP Completeness (CNF SAT, Vertex Cover and Subset Sum)
8.4. Approximation Algorithms: Concept, Vertex Cover Problem, Subset Sum Problem

Laboratory Works:
This course can be learnt in effective way only if we give focus is given in
practical aspects of algorithms and techniques discussed in class. Therefore
student should be able to implement the algorithms and analyze their behavior.

For the laboratory work, students should implement the following algorithms in C/
C++ and perform their analysis for time and space complexity.

Basic iterative algorithms GCD algorithm, Fibonacci Sequences, Sequential and


Binary Search.
Basic iterative sorting algorithms: Bubble Sort, selection Sort, Insertion Sort.
Binary Search with Divide and conquer approach.
Merge Sort, Heap sort, Quick Sort, Randomized Quick Sort.
Selection Problem with divide and Conquer approach
Fractional Knapsack Problem, Job sequencing with deadline, Kruskal’s algorithm,
Prims algorithm, Dijkstra’s Algorithm
Implement the dynamic programming algorithms.
Algorithms using Backtracking approach.
Implement approximationAlgorithm.
Text Books:
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,
“Introduction to algorithms”, Third Edition.. The MIT Press, 2009.
Ellis Horowitz, SartajSahni, SanguthevarRajasekiaran, “Computer Algorithms”, Second
Edition, Silicon Pre

You might also like