Teaching
Virginia Tech
- Undergraduate Courses
- CS 2505: Introduction to Computer Organization I (Spring 2008, Fall 2008, Spring 2009, Fall 2009, Spring 2011)
- CS 4234: Parallel Computation (Fall 2016)
- CS 4254: Computer Network Architecture & Programming (Spring 2010)
- CS 4504: Computer Architecture (Spring 2012, Spring 2014, Spring 2016)
- CS 4984: Accelerator-Based Parallel Computing (Spring 2009)
- Graduate Courses
- CS 5234: Advanced Parallel Computation (Spring 2017)
- CS/ECE 5504: Computer Architecture (Spring 2012, Spring 2015)
- CS/ECE 5565: Network Architecture and Protocols (Spring 2007, Spring 2008, Spring 2010)
- CS 6204: Advanced Topics in High-Performance Networking (Spring 2006)
- CS 6504: Advanced Networking for High-Performance Computing (Spring 2007)
- CS 6504: Heterogeneous Multicore Computing (Spring 2011)
- CS 6504: Co-Design for Parallel Computing (Fall 2013)
- CS 6504: Accessible Parallel Computing (Spring 2015)
University of Illinois at Urbana-Champaign
- Undergraduate Courses
- CS 105: Introduction to Computing (Spring 1991, Fall 1996, Spring 1997, Fall 1997, Spring 1998)
- CS 232: Computer Organization II (Fall 1996, Spring 1997, Fall 1997)
- Graduate/Undergraduate Courses
- CS/ECE 338: Communication Networks for Computers (Summer 1991, Spring 1998)
- CS/ECE 348: Introduction to Artificial Intelligence (Fall 1990)
Penn State University
- Undergraduate Courses
- CMPEN 271: Digital System Design (Fall 1989)
- EE 220: Electrical Circuits and Power Distribution (Spring 1989)
- Graduate/Undergraduate Courses
- CMPEN 449: VLSI System Design (Fall 1988)