One of the important reasons I prefer an academic job is the opportunity of interacting with students and facilitate their learning process. I believe that instilling knowledge in others develops new insights into the subject every time for the teacher. My teaching experiences, teaching philosophy, and teaching interests are as follows.

Teaching Statement

One of the important reasons I prefer an academic job is the opportunity of interacting with students and facilitating their learning process. I believe that instilling knowledge to others develops new insights into the subject every time for the teacher. My teaching experiences, teaching philosophy, and teaching interests are as follows.

Teaching Experience


I have now 5+ years of teaching experience at IIITH. I had offered (many of them were designed by me) the following courses:

  • Introduction to Game Theory

  • Optimization Methods

  • Distributing Trust and Blockchains

  • Advanced Computer Networks

  • Data Structures and Algorithms

  • Fairness, Privacy, and Ethics in AI

  • Human Values I, II

Currently, I am offering (i) Distributing Trust and Blockchains and (ii) Fairness, Privacy and Ethics in AI at IIIT Hyderabad


I was one of the tutors for a tutorial in game theory and mechanism design at the Indian Institute of Science, Bangalore (Mar2008). I was also a teaching assistant for CS430: Intelligent Agents and CS436: Computational Game Theory and Applications at the Swiss Institute of Technology (EPFL) in Fall’2014. I offered CS715: Advanced Topics in Algorithmic Game Theory and Mechanism Design, a doctoral course at EPFL (Spring’2015).

Teaching Philosophy

In the current era, all the information is available at the fingertips, then why are the teachers necessary? I was always fortunate to have had good teachers throughout my life. One thing I learned from my teachers is that a good teacher makes students curious about the subject rather than just providing information about the topic. In my view, a teacher should make students self-dependent and prepare them to apply the principles taught in the class to new problems. Towards this, I trust that students learn better through active participation than by only delivering lectures. Consequently, instead of just supplying students with course material, I will keep my classes more interactive by (i) posing questions to students; questioning triggers their thinking, (ii) making them solve varied assignments, (iii) small projects, and (iv) student presentations.

As the wise saying goes, a picture is worth a thousand words, I will use graphics and slides in the class. At the same time, from my personal experience as a student, fundamental things, especially involving mathematical formulations, are better grasped when a teacher writes them down on a blackboard. Hence, I will use a good blend of both techniques: slides complemented by blackboard.

I will reserve office hours for each course that I am teaching to enable more interaction with students, clarify their doubts, be their companion in their journey of learning the subject, and provide more pointers to bright, inquisitive students for learning beyond the scope of the course.

Teaching Plan

Algorithm design plays an essential role in designing many economic markets such as auctions. This research area is known as EconCS (Economics and Computer Science). My research has been broadly in EconCS. The desired solutions must be computationally efficient and robust to manipulations by the participating agents. This calls upon techniques from game theory, algorithm design, optimization theory, and basic math. In specific settings, the agents also care about the privacy about their presence and actions, where cryptography plays an important role.

I am interested in teaching Algorithmic Game Theory and Mechanism Design for Masters's students across various engineering departments and Advanced Topics in Algorithmic Game Theory at the doctoral level for computer science students. Though the game theory was developed by economists and mathematicians to study the analysis of conflicts, it has found widespread applications in various engineering fields. Learning the techniques from game theory will be helpful for students in solving many real-world problems involving strategic agents having conflicting interests. The goal of the course will be to teach how to efficiently compute various solutions proposed in game theory. Thus,

Algorithmic Game Theory and Mechanism Design course will be helpful for students in many engineering departments as well as for math students to get a flavor of algorithmic aspects of the game theory.

I can also offer Game Theory, Linear Algebra, Applied Probability and Stochastic Models, and Cryptography to undergraduate students based on my research and interests. I can teach Design and Analysis of Algorithms and Computational Methods of Optimization at the Masters level. (More details about the contents of the courses are in the appendix)

To conclude, I am passionate about taking teaching responsibilities and offering courses connected with my research.

Appendix: Course contents at broad level

Undergraduate Course Game Theory

What is game? Extensive form games vs strategic form games, two player zero sum games, mini- max theorem, dominant strategy equilibrium, Nash equilibrium and its existence, price of anarchy in routing games, co-operative game theory, core, imputations, Shapley value, Nash bargaining solution. Game with incomplete information, introduction to mechanism design, revelation principle, voting schemes, Arrows impossibility theorem.

Linear Algebra

Vector spaces, basis and dimension, linear transformations, kernels, rank-nullity theorem, vector space Rn, system of linear equations, representation as matrices, matrix operations, rank of a ma- trix, Gauss elimination to solve system of linear equation, determinants, Cramer’s rule, eigenvalues, eigenvectors, inner product spaces, orthogonal basis, GramSchmidt process, symmetric matrices, Diagonalization,

Applied Probability and Stochastic Models

Axioms of Probability, inclusion-exclusion principle, conditional probability, independence, Bayes theorem, discrete random variables, continuous random variable, probability density function, cu- mulative distribution functions, expectations, variance, co-variance, moment generating functions, Chernoff bounds, strong law of large numbers, random process, stochastic process, Markov chains


Goals of Cryptography: confidentiality, authentication, message integrity, non-repudiation, sym- metric key encryption (DES, AES) and various modes of operations, public-key encryption, RSA, El-Gamal, digital signature schemes, message authentication codes HMAC, SHA-256, key exchange protocol Diffie-Hellman, Zero Knowledge Proofs.

Masters Courses

Algorithmic Game Theory and Mechanism Design

Quick Introduction to game theory, algorithms for two-player zero sum games, PPAD-completeness of Nash equilibrium, algorithms for Nash equilibrium computations, introduction to mechanism de- sign and voting, impossibility theorems: Arrow, GibbardSatterthwaite, Green-Laffont, Myerson- Satterthwaite, VCG mechanisms, dA’GVA mechanisms. Myerson optimal auction design. approxi- mation algorithms for mechanism design, frugal mechanism design for path auctions and spanning tree auctions. Algorithms for Shapley Value computation. Algorithms for mechanism design with- out money, deferred acceptance algorithm, top trading cycle algorithm. online mechanism design and competitive analysis. Price of truthfulness in machine learning algorithms. Demonstrate some applications of the game theory in e-commerce, crowdsourcing, social networks etc.

Design and Analysis of Algorithms

Introduction to Algorithms and analysis, growth functions, complexity of the algorithm, (Big O, θ, Ω notations, amortized analysis. Greedy Algorithms: Minimum spanning trees, matroid optimization, Huffman coding, activity selection problem. dynamic programming introduction with applications like matrix chain multiplication, longest common subsequence, knapsack problem. Graph Algo- rithms: Max-flow min cut, Maximum weight bipartite matching (Hungarian Method) Introduction to Randomized Algorithms: Las Vegas vs Monte Carlo Methods, Primality testing (Rabin-Miller test). NP-completeness and approximation algorithms, fully polynomial time approximations schemes. On- line algorithms and competitive ratio.

Computational Methods for Optimization

Unconstrained optimization, first order and second order conditions, gradient descent methods, new- tons method, conjugate gradient methods. Constrained optimization over convex sets, KKT con- ditions, gradient descent methods, multiplicative weight update methods, Frank-Wolfe method, in- troduction to linear programming, weak duality, strong duality, complimentary slackness conditions, simplex algorithm.