The course aims at imparting basic principles of thought process, reasoning and inference to identify the roots and details of some of the contemporary issues faced by our nation and try to locate possible solutions to these challenges by digging deep into our past.

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.