This course teaches algorithm design techniques and algorithm analysis techniques. It deals with inductive and recursive thinking through which problems can be tackled and solved.