“Beware of bugs in the above code; I have only proved it correct, not tried
it.” Donald Knuth
“Program testing can be a very effective way to show the presence of bugs, but
is hopelessly inadequate for showing their absence.” Edsger Dijkstra
I teach a wide variety of courses. My areas of specificalization include:
Software Engineering, Programming Languages, Theory, and Operating Systems.
My research falls into two general areas: software engineering + program analysis,
and CS education. In the former, my specific goal is to utilize latent
information (and introduce additional low-overhead information gathering) in
core files produced by crashed applications to simplify the complex task of
debugging. In the latter, I do research on the effectiveness of oral exams
in undergraduate education and integrating ethical content into early CS courses.
For more information about my research
projects and
publications, please see the relevant pages. Feel
free to contact me with any questions.