- Computational Complexity II (Aug-Nov 2006)

This course is on some inter-related topics from pseudorandomness, derandomization, coding theory, and expanders. It is mainly based on Luca Trevisan's notes on pseudorandomness and his survey articles. Other sources are Madhu Sudan's coding theory notes and Venkat Guruswami's notes on the pcp theorem.Notes for some of my lectures were scribed by the participants in the course. Building on it, Ramprasad Saptharishi of Chennai Mathematical Institute has written a fairly complete set of notes for the course.

- Algorithms (Aug-Nov 2004)

Source: CLR, AHU. - Algebra and Computation (Aug-Dec 2002, Jan-April 2004, 2005,
2007)

Source: The first part of the course is on Graph Isomorphism, based on papers and notes of Eugene Luks and Laszlo Babai. The second part is mainly based on Madhu Sudan's notes and "Modern Computer Algebra" by von zur Gathen and Gerhard.Here are the lecture notes for my 2007 course, scribed by Ramprasad Saptharishi and others.

- Discrete Mathematics (Aug-Dec 2003)
Source: "Combinatorics" by van Lint and Wilson, Stanley's "Enumerative Combinatorics" vol I, Peter Cameron's "Topics in Combinatorics and Algorithms".

- Computational Complexity (Jan 2002 - April 2002)

Source: Balc\'azar et al's books, Papdimitirou's book, Eric Allender's course notes, Sipser's notes, etc.