Design & Analysis of Algorithm (KCS503) introduces the fundamental techniques for designing and analyzing algorithms with asymptotic notation. It includes divide-and-conquer algorithms, greedy algorithms, dynamic programming, NP-completeness, and approximation algorithms. This senior-level course emphasizes techniques for constructing efficient algorithms and for analyzing the efficiency of an algorithm.

Pre‐requisite: Knowledge and skills in C, Java, or Python programming, Concepts of Data Structures.