I am interested in techniques that make it easier to build software that "does what you expect" and in determining, after you've built that software, what it actually "does" when you use it.


With colleagues I have developed resources to support research activities by the broader community. Several of them are linked below:


Other people keep track of the papers I've published, but it usually takes some months for these sources to be updated. If you are interested in a recent paper send me an email.


One of the best parts of my job involves working with bright, motivated students. I learn at least as much from them as they do from me. Here are two interesting explanations of what a PhD education is all about from quite different perspectives. I felt both the grind, explained by Philip, and the inspiration, that is implicit in Matt's explanation, in my education. My aim is to minimize grind and maximize inspiration for my own students; some grind is unavoidable (i.e., research is hard or someone would have already done it). I found this book when I was in grad school and it was full of guidance about how to pursue scientific discovery. I should find time to reread it on a regular basis.

Current Students

Graduated Doctoral Students

Community Service

I believe that the field of software engineering develops most effectively when people build on each others work through a cooperative, rather than a competitive, process. I work to support that process by helping to organize and run meetings and journals where people can report on and share their work.