Programming Assignments for the course Algorithms taught by Dr. Humaira Kamal at Lahore University of Management Sciences
This was a first undergraduate course on algorithms, where we look at a range of computing applications and followed a design process that includes (a) formulating the problem through precise notation, (b) understanding algorithm design techniques based on the structure of the problem, and (c) development of efficient solutions to solve these problems and prove their correctness. This course discussed a number of design techniques such as greedy algorithms, divide-and-conquer, dynamic programming and network flow. The last module in the course discussed computational intractability with focus on NP completeness.