This course describes various algorithm design techniques and helps the students to write efficient algorithm for a given problem and also to find an alternate solution for a particular problem.