Programming Language Design, Software Engineering and Design, Parallel and Distributed Computing
Data Structures, Web and Mobile Application Development
Senior Software Project I and II
Operating Systems, Compiler Design
Currently working on: CloudCoder, an open-source web-based programming exercise system (heavily inspired by CodingBat). It is designed to make it easy for instructors of introductory programming courses to assign short exercises to students for skills development and assessment. Currently, exercises in C/C++, Java, Python, and Ruby are supported.
FindBugs, a program which uses static analysis to look for bugs in Java code (OOPSLA 2004 Onward! paper). GeekOS, an educational operating system kernel (SIGCSE 2004 paper)
Marmoset, an automated assignment submission and testing system (ITiCSE 2006 paper).
AceGWT is the "official" integration of the Ajax.org Code Editor (ACE) with the Google Web Toolkit.
Andrei Papancea, Jaime Spacco, and David Hovemeyer. An Open Platform for Managing Short Programming Exercises, in Proceedings of ICER 2013 (International Computing Education Research), San Diego, CA, USA, August 12-14, 2013. [to appear]
David Hovemeyer and David Babcock. Using Terminal Window Graphics in CS1, in Proceedings of CCSC Eastern Conference 2008, Frederick, MD, October, 2008.
Nathaniel Ayewah, David Hovemeyer, J. David Morgenthaler, John Penix, and William Pugh. Experiences Using Static Analysis to Find Bugs, IEEE Software, September/October 2008.
David Hovemeyer and William Pugh. Finding More Null Pointer Bugs, But Not Too Many, in Proceedings of the 2007 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2007), San Diego, CA, USA, June, 2007.