This course is an advanced form of an introductory algorithms course, and is meant to have a thorough grounding in core Algorithms required for pursuing PG degree in Computer Science. The course covers topics such as asymptotic notation, recurrence relation, graph algorithms, heaps, dynamic programming, greedy algorithms, divide and conquer, NP-completeness where the undergraduate contents of each topic is first reviewed in a fast-paced manner, and is followed by some advanced content.

- Undergraduate Algorithms course

Open only to M.Tech. and Ph.D. students (recommended for students with inadequate background in Algorithms).

1. The student is able to design and analyse algorithms using techniques like divide and conquer, greedy and dynamic programming.

2. The student is able to use standard data structures like heaps, trees and graphs for designing algorithms.

3. The student is able to prove NP-completeness of problems using reductions.

4. The student is familiar with modern techniques to handle intractable problems like randomization, approximation, backtracking search.

Evaluation will be based on in-class short online quizzes (to be taken during lectures and tutorials), group homeworks, closed-book online proctored midsem and endsem exams. We will follow a flexible policy to let students focus more on exams or homeworks, as per their choice.

The following algorithm will be used to calculate your cumulative score out of a **total 100**.

**QUIZSCORE =**sum of 10 highest quiz percentages (normalized by 100) x 1.00**HWACOUNT =**number of homework submissions__before__midsem (HQ 1-15)**HWBCOUNT =**number of homework submissions__after__midsem (HQ 16-28)- Both HWACOUNT and HWBCOUNT are capped to 10 if more than 10 are submitted, and set to 5 if less than 5.
**HWASCORE =**sum of best HWACOUNT homework percentages from homeworks submitted__before__midsem (normalized by 100) x 1.50**HWBSCORE =**sum of best HWBCOUNT homework percentages from homeworks submitted__after__midsem (normalized by 100) x 1.50**REDUCE =**[(HWACOUNT - 5) + (HWBCOUNT - 5)] x 1.50**MIDSCORE =**(35/75)x(75 - REDUCE) x midsem percentage (normalized by 100)**ENDSCORE =**(40/75)x(75-REDUCE) x endsem percentage (normalized by 100)**CUMULATIVE (%) =**QUIZSCORE + HWASCORE + HWBSCORE + MIDSCORE + ENDSCORE

Quizzes during lectures will happen via Google Forms and are of short duration (2-5 minutes). They are used to test if students are following the concept. There could be multiple quizzes (or, none) in a lecture and the average score of an individual will be used as the final score for that quiz.

All office hours will take place on the Meet Link given on Classroom.

**Debajyoti Bera -** dbera@ - TBA (email me if you want meet at some other time)

**Ritesh Seth** - riteshs@ - TBA

**Sanchita Saha** - sanchita21075@ - TBA

**Shaguftha Zuveria Kottur** - shaguftha21079@ - TBA