- COMP 322 (Fundamentals of Parallel Programming), Rice University, Spring 2016, Spring 2015, Spring 2014, Spring 2013, Spring 2012, Spring 2011, Fall 2009.
- COMP 515 (Advanced Compilation for Vector and Parallel Processors), Rice University, Fall 2015, Fall 2013 (co-taught with Prof. Krishna Palem), Fall 2011, Spring 2009.
- Co-instructor for CS 181E (Fundamentals of Parallel Programming), Harvey Mudd College, Fall 2012.
- Three-day course on “Introduction to Parallel Programming”, CSIRO, Perth, Australia, December 2011.
- Week-long HPC Summer Institute course, May 2011, May 2010, May 2009. Co-taught with Prof. John Mellor-Crummey & Prof. Tim Warburton.
- Short course on Multicore Programming Models and their Compilation Challenges,ACACES 2010 summer school, July 2010.
- COMP 211 (Principles of Program Design), Rice University, Spring 2010. Co-taught with Prof. Corky Cartwright.
- Short course on Multicore Programming Models, Second International School on Trends in Concurrency, June 2008.
- COMP 422 (Introduction to Parallel Computing), Rice University, Spring 2008.
- COMP 635 (Seminar on Heterogeneous Processors, Rice University, Fall 2007.
- 6.035 (Computer Language Engineering), MIT, Fall 1996 and Fall 1997.
- Short course on Code Optimization in Modern Compilers, Western Institute for Computer Science (WICS), Stanford University, August 1994, August 1995, August 1996. Co-taught with Prof. Krishna Palem.
- Short course on Compiling for Parallelism, Indian Institute of Science, March 1990.
- CS 302, U. Wisconsin-Madison, Fall 1981 and Spring 1982. Introductory programming course in Pascal and Fortran.