Design and Analysis of Algorithms

General information

Course Number : CS 218
Instructor : Mrinal Kumar
Email : first name AT cse DOT iitb DOT ac DOT in
Lectures: Wed/Fri 11 am-12:30 pm
Office hours: Wed 12:30 pm-1:30 pm

Teaching assistants

We have seven TAs for the course. Office hours for TAs: Thursdays 2-3:30 pm on MS Teams.


The course will be taught online, with lectures on MS Teams, and online office hours. If you have logistic constraints that make any of this difficult, please send me an email, and we can try to figure a way around this. We will use Moodle/MS Teams for announcements and discussions.


Grades will be based on two mid-sems (30% + 25% respectively), a final exam (40%) and class participation (5%).
There will be a few problem sets through the course that will not be graded (but are highly recommended).


This is a fairly standard undergraduate course in the design and analysis of algorithms, typically meant for computer science undergraduates. I will assume some familiarity with the material in the class on data structures and algorithms in the previous semester. The course would be largely mathematical, and will involve design of algorithms as well as formal proofs of correctness and bounds on performance of such algorithms.

We will see some of the algorithm design paradigms/techniques and their applications to design algorithms for various computational problems. We will also discuss the notion of computational hardness and see some of the strategies for coping with computational hardness.


We will follow the textbooks by Kleinberg and Tardos and the one by Cormen et al. for a large part of the course. Both these books contain a fairly large number of exercises and I highly encourage you to check them out.