IT265 DESIGN AND ANALYSIS OF ALGORITHMS

Title of the unit Minimum number of hours
1 Basics of Algorithm and Mathematics 08
2 Analysis of Algorithm 08
3 Divide and Conquer Algorithm 08
4 Greedy Algorithm 08
5 Dynamic Programming 10
6 Exploring Graphs 10
7 String Matching and NP Completeness 06


Unit No. Topics Teaching Hours
1 Basics of Algorithm and Mathematics
1.1 What is an algorithm?
1.2 Mathematics for Algorithm
1.3 Performance Analysis, Model for Analysis - Random Access Machine (RAM), Primitive Operations
1.4 Time Complexity and Space Complexity
08
2 Analysis of Algorithm
2.1 The efficiency of algorithm, Best, Average and Worst case Analysis
2.2 Asymptotic Notation
2.3 Solving Recurrence Equation
2.4 Sorting Algorithm
08
3 Divide & Conquer Algorithm
3.1 Basic of Recursion and its complexity
3.2 The general template for Divide and Conquer Problem
3.3 Problem solving using divide and conquer algorithm – Binary Search, Sorting - Merge Sort and Quick Sort
3.4 Strassen's Matrix Multiplication
08
4 Greedy Algorithm
4.1 General Characteristics of greedy
4.2 Problem solving using Greedy Algorithm: Making change problem
4.3 The Knapsack Problem, Job Scheduling Problem
4.4 Minimum Spanning Trees (Kruskal’s Algorithm, Prim’s Algorithm)
4.5 Dijkstra Algorithm
08
5 Dynamic Programming
5.1 Introduction, The Principle of Optimality
5.2 Problem Solving using Dynamic Programming – Calculating the Binomial Coefficient
5.3 Making Change Problem, Assembly Line Scheduling
5.4 Knapsack Problem, All pair Shortest Path
5.5 Matrix Chain Multiplication
5.6 Longest Common Subsequence
10
6 Exploring Graphs and Backtracking
6.1 An introduction to Graph, Basic Definitions
6.2 Traversing Graphs – Depth First Search, Breadth First Search, Topological Sort
6.3 Backtracking – The Eight Queen Problem
6.4 The Knapsack Problem
6.5 Branch and Bound – The Assignment Problem
10
7 String Matching and NP Completeness
7.1 Introduction
7.2 The naïve string matching algorithm
7.3 The Rabin-Karp algorithm
7.4 Introduction to NP Complete Theory
06