Chapter 1 Basics of Algorithms and Mathematics: What is an algorithm ?, Mathematics for Algorithmic Sets, Functions and Relations, Vectors and Matrices, Linear Inequalities and Linear Equations. (Chapter 1) Chapter 2 Analysis of Algorithm: The efficient algorithm, Average, Best and worst case analysis, Amortized analysis , Asymptotic Notations, 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. (Chapter 2) Chapter 3 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. (Chapter 3) Chapter 4 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. (Chapter 4) Chapter 5 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. (Chapter 5) Chapter 6 Exploring Graphs: Chapter 7 Backtracking and Branch and Bound: Introduction, The Eight queens problem , Knapsack problem, Travelling Salesman problem, Minimax principle. (Chapter 7) Chapter 8 String Matching: Chapter 9 Introduction to NP-Completeness: