Welcome to my University of Virginia website! I have been at the University of Virginia since 1982. (I came here immediately after finishing my Ph.D. in Computer Science at the University of Arizona). For my most recent activities and news, please see my news and recent activities page.

My research interests include compilers, programming languages, computer architecture, embedded systems, and computer security. My current research interests are focused on the areas of computer security, run-time management of applications running on multi-core systems, and computer science education. I currently have several grants in each area (please see my research web page and funded research page for the projects).

I am a member of the Association for Computing Machinery (
ACM) and the IEEE Computer Society. I am currently an Associate Editor of ACM’s Transactions on Architecture and Code Optimization. I served as an Associate Editor of ACM’s Transactions on Programming Languages and Systems from 1994 to 2000.I am also a Fellow of the ACM and a Senior Member of IEEE.

I have been involved for many years with ACM’s Special Interest Group on Programming Languages (
SIGPLAN). I served as a member-at-large from 1999–2001 and 2003–2005. I served as SIGPLAN Chair from 2005–2007. I am SIGPLAN’s Information Director and I designed and continue to maintain SIGPLAN’s web pages. I am also a member of SIGBED (Special Interest Group on Embedded Systems), SIGARCH (Special Interest Group on Computer Architecture), and SIGCSE (Special Interest Group on Computer Science Education).

Currently, I am co-chair of ACM’s Publications Board. ACM's Publication Board oversees all aspects of ACM’s publications and the operation of
ACM's Digital Library.

I am the co-author of two best-selling introductory programming textbooks, C++ Program Design: An Introduction to Object-Oriented Programming, 3rd edition and Java 5.0 Program Design: An Introduction to Object-Oriented Programming, 2nd edition. He and his colleague, James P. Cohoon, received the 2008 IEEE Taylor L. Booth Award for their sustained effort to transform introductory computer science education.5.0 Program Design: An Introduction to Object-Oriented Programming, 2nd edition. My co-author, James P. Cohoon, and I have organized numerous workshops for college professors on how to teach object-oriented programming. Jim Cohoon and I were awarded the 2008 IEEE Taylor L. Booth Education Award for "Sustained effort to transform introductory computer science education through lab-based multimedia pedagogy coupled with examples that attract a diverse student body." The video of the award presentation is here.

I thoroughly enjoy teaching. I was a lecturer at the Third International Summer School on Advanced Computer Architecture and Compilation for Embedded Systems (ACACES 2007)  held the summer of 2007 in Aquila, Italy. In the summer of 2008, I taught a week-long seminar at the inaugural Indo-US Engineering Faculty Leadership Institute held in at Mysore, India. My class was very enthusiastic and I thoroughly enjoyed my visit to India.

I am a founding organizer of the International Summer School on Information Security and Software Protection.The first summer school (
ISSISP 2010) was held in Beijing, China in the summer of 2010. The second summer school (ISSISP 2011) was held in Ghent, Beligium.