I'm interested in various facets of how people learn and use formal systems. Over the years, I've increasingly emphasized the human and learning components. Currently, my main projects are Bootstrap: teaching kids to program videogames as a way to reinforce algebra, developing effective error-messages for novice programmers in WeScheme and DrRacket, and Margrave: a tool to help people develop accurate access-control and privacy policies. I also lead WPI's Cybersecurity program, which emphasizes technical aspects of security within its broader human and organizational contexts.
My early-career research focused on computational aspects of representations used by humans in hardware and software design. I've studied diagrammatic logics for hardware verification, including the differences between timing diagrams and textual temporal logics. I did a lot of the early work on modular verification of programs whose modules encapsulated user-identifiable features (an architecture linked to product lines, such as telecommunications systems). I occasionally publish papers in these areas, but my focus lies elsewhere.
If you are interested in joining my research group, read this and then contact me.
|Courses and Materials||Professional Activities|
I was a theater junkie through high school. As an undergraduate at Williams College, I rang handbells, worked in the college archives, walked campus backwards giving tours, danced folk and jitterbug, double majored in Chinese and Computer Science, and sang in an acapella group for folks who couldn't carry a tune. These days, I mainly travel, exercise, practice guitar, and cook vegetarian food from around the world. Jigsaw puzzles distract me for hours. I love puns and other forms of word-play. As a native New Yorker, I'm a thin-crust pizza snob.