CS218: Design and Analysis of Algorithms (2023-24 Sem II)

Course Contents:

Algorithms: Basic principles like induction/recursion. Basic paradigms like Divide and Conquer, Dynamic Programming, Greedy Algorithms. Beyond the basics: Network Flow and its applications. Reductions.

Complexity: Polynomial time and the Complexity classes NP, co-NP. NP-hardness and NP-completeness.

Advanced topics: Randomized algorithms, Approximation algorithms. E.g., approximate max-cut, load balancing, min-cut.

References:

Lectures

Course introduction slides

Basics

Exercises (Lectures 1-7)

Slides pdf pptx keynote (Lectures 1-7)

Arithmetic

Exercises (Lectures 8-11)

Slides pdf pptx keynote (Lectures 8-11)

Quiz 1 solutions

Programming assignment 1

Greedy algorithms, Dynamic programming

No slides. One can see notes from last year.

Boardwork from class

Exercises (Lectures 12-20)

midsem solutions

Network Flow

See notes from last year.

Exercises (Lectures 21-24)

P, NP, NP-completeness

slides

Exercises (Lectures 25-28)

Programming assignment 2

Quiz 2 solutions

Advanced algorithms

Exercises (Lectures 29-)