Techniques for analysis of algorithms; Methods for the design of efficient algorithms: divide and conquer, greedy method, dynamic programming, back tracking, branch and bound; Basic search and traversal techniques; Topological sorting; Connected components, spanning trees, shortest paths; Flow algorithms; Approximation algorithms; Parallel algorithms; Algebraic simplification and transformations; Lower bound theory; NP-completeness, NP-hard and NP-complete problems.

- Teacher: Dr. M. Kaykobad
- Teacher: Dr. Md. Abul Kashem Mia