Introduction, Underlying mathematical theory, Induction and recursion techniques in analyzing algorithms, Asymptotic notations, Search techniques, Divide-and conquer technique, Randomized algorithms, Heuristic algorithms, Brute Force approach, Backtracking, branch-and-bound, Optimization techniques in algorithms designing, Dynamic algorithms, Greedy algorithms, Graph Theory, Searching algorithms, Minimal spanning tree algorithms, Polynomials and FFT, Number theoretic notations, Number theoretic algorithms, RSA cryptosystems, String matching, pattern matching, NP completeness and NP completeness proofs.