I teach algorithms and theoretical computer science with an emphasis on developing intuition alongside mathematical rigor. Lecture videos for my online courses are available on my YouTube channel.
Design and Analysis of Algorithms
Algorithm design paradigms, approximation algorithms, randomized algorithms, computational complexity, and related foundations.
Advanced Algorithms and Complexity
Advanced algorithmic techniques and complexity theory, including randomized computation and interactive proofs.
Teaching Chronology
A reverse-chronological record of courses taught, including lecture courses and tutorials.
BITS Pilani · 2015–Present
Autumn 2026 — Advanced Algorithms and Complexity (sole instructor); Theory of Computation (tutorial; shared with three instructors)
Spring 2026 — Design and Analysis of Algorithms (sole instructor); Cryptography (shared with one instructor)
Autumn 2025 — Advanced Algorithms and Complexity (sole instructor); Theory of Computation (tutorial; shared with two instructors)
Spring 2025 — Design and Analysis of Algorithms (shared with one instructor); Cryptography (sole instructor)
Autumn 2024 — Advanced Algorithms and Complexity (sole instructor); Theory of Computation (tutorial; shared with one instructor)
Spring 2024 — Design and Analysis of Algorithms (shared with one instructor); Cryptography (sole instructor)
Autumn 2023 — Advanced Algorithms and Complexity (sole instructor); Theory of Computation (tutorial; shared with two instructors)
Spring 2023 — Design and Analysis of Algorithms (shared with one instructor); Cryptography (shared with one instructor)
Autumn 2022 — Advanced Algorithms and Complexity (sole instructor); Discrete Structures for Computer Science (tutorial; shared with two instructors)
Spring 2022 — Design and Analysis of Algorithms (shared with one instructor); Cryptography (sole instructor)
Autumn 2021 — Advanced Algorithms and Complexity (sole instructor)
Spring 2021 — Design and Analysis of Algorithms (shared with one instructor); Design and Analysis of Algorithms (tutorial; shared with two instructors); Cryptography (shared with one instructor)
Autumn 2020 — Advanced Algorithms and Complexity (two iterations as a sole instructor); Discrete Structures for Computer Science (tutorial; shared with two instructors)
Spring 2020 — Design and Analysis of Algorithms (shared with one instructor); Design and Analysis of Algorithms (tutorial; shared with one instructor); Cryptography (sole instructor)
Autumn 2019 — Advanced Algorithms and Complexity (sole instructor); Discrete Structures for Computer Science (shared with one instructor); Discrete Structures for Computer Science (tutorial; shared with two instructors)
Spring 2019 — Design and Analysis of Algorithms (sole instructor); Cryptography (sole instructor)
Autumn 2018 — Design and Analysis of Algorithms (sole instructor); Advanced Algorithms and Complexity (sole instructor)
Spring 2018 — Design and Analysis of Algorithms (sole instructor); Cryptography (sole instructor)
Autumn 2017 — Advanced Compilation Techniques (sole instructor); Theory of Computation (tutorial; shared with one instructor)
Spring 2017 — Design and Analysis of Algorithms (shared with one instructor); Design and Analysis of Algorithms (tutorial; shared with one instructor); Cryptography (sole instructor)
Autumn 2016 — Advanced Algorithms and Complexity (shared with one instructor); Theory of Computation (tutorial; shared with one instructor)
Spring 2016 — Cryptography (sole instructor); Data Structures and Algorithms (shared with one instructor)
Autumn 2015 — Advanced Algorithms and Complexity (shared with one instructor); Advanced Compilation Techniques (sole instructor)
IIT Jodhpur · 2013–2014
Autumn 2014 — Theory of Computation (sole instructor); Algorithms-II (sole instructor); Data Structures and Algorithms (tutorial; shared with two instructors)
Spring 2014 — Computational Complexity (new course designed; sole instructor); Operating Systems (sole instructor)
Autumn 2013 — Theory of Computation (sole instructor); Algorithms-II (shared with one instructor); Compiler Design (shared with one instructor)
Spring 2013 — Compiler Design (sole instructor)
Banaras Hindu University · 2007–2008
Spring 2008 — Advanced Course in Operating Systems (sole instructor); Operating System (sole instructor)
Autumn 2007 — Discrete Mathematical Structures (sole instructor)