I'm interested in various facets of how people learn and use formal systems. My current focus is computing education. I'm revisiting classic computing education studies through functional programming, studying in-flow peer review as a learning and assessment tool (through CaptainTeach), and exploring integrated learning of math and computing (through Bootstrap). In general, I am interested in the effect of programming language tools and technology on learning and pedagogy in computing.
Prior Research: 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 was also one of the lead researchers on Margrave, a tool to help people develop accurate access-control and privacy policies. I still publish occasional papers in these areas, but my focus lies elsewhere.
|Courses and Materials
Recent 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. Four years living in Houston learned me in salsa. I'm yet to live in a place that offers both great pizza and great salsa.