I am a researcher in the Visualization and Interaction in Business and Entertainment (VIBE) Group at Microsoft Research in Redmond, WA, USA. My research applies HCI techniques to study and improve the software development process. I study collaborative software development, Agile methodologies, developer-centric knowledge management, flow and coordination, and K-16 and beyond programming education. I work closely with Mary Czerwinski Rob DeLine, Kael Rowan, Thomas Zimmermann, and Christian Bird. I have also hosted several interns: Nicolas Bettenburg (Graduate Student at Queen's University), Anja Guzzi (Graduate Student at Delft University of Technology), Alicia Grubb (Graduate Student at University of Toronto), Khoo Yit Phang (Graduate Student at University of Maryland), Libby Hemphill (Prof. at Illinois Institute of Technology), Reid Holmes (Prof. at University of Waterloo), Christopher Poile (Prof. at University of Saskatchewan), and Lucas Layman (Research Scientist at Fraunhofer Center for Experimental Software Engineering).
I received a Ph.D. in Computer Science from the University of California, Berkeley in December 2005. I studied with Susan L. Graham. My dissertation was about voice-based programming, how to build a development environment that supports it, and how well programmers can use it. It is intended for programmers with repetitive strain and other injuries that make it difficult for them from using the keyboard and mouse in their daily work. For the quick punch-line, read my dissertation abstract below.
At MIT, I received a Master of Engineering degree in Computer Science in 1997 and a Bachelor of Science degree in Electrical Engineering and Computer Science in 1996. I worked on StarLogo, a programmable modeling environment designed to help students learn about science. StarLogo runs on PCs, Macs and Unix machines. A newer version of StarLogo, called StarLogo TNG, incorporates graphical block-based programming and a 3D turtle world to teach programming by enabling kids to create their own games and simulations.
Education in computer science has always been important to me. Along with Steven Wolfman, Daniel D. Garcia and Rebecca Bates, I led workshops on Kinesthetic Learning Activities, physically engaging classroom exercises that teach computer science concepts.
Title: |
VIBE |
|
Projects: |
Knowledge Management, Knowledge Flow, Cognitive Aspects of Programming | |
Links: |
[VIBE Research Group] [HIP Research Group] |
Title: |
Code Investigation Tools |
|
Projects: |
Codebook: Social Networking Over Code, Deep Intellisense: Visual Studio Plugin, Codifier: Developer-Centric Code Search | |
Links: |
[ICSE 2010] [Web2SE 2010] [ICSE 2009 NIER Track] [MSR 2008] [HCIR 2007] [PPIG 2006] |
Title: |
Knowledge Acquisition and Learning on Software Teams |
|
Projects: |
Remote Onboarding, Struggles of New College Graduates in Software Engineering, Computer-Mediated Preemptive Mentoring | |
Links: |
[ICER 2008 Paper] [SIGCSE 2008 Talk] [SIGCSE 2008 Paper] [MS Faculty Summit 2007 Poster] [CSCW Workshop Paper] |
Title: |
Agile Development Methodologies |
|
Projects: |
Surveys of Agile Development at Microsoft | |
Links: |
[ESEM 2008 Paper] [ESEM 2007 Paper] |
Title: |
Software Development Team Coordination |
|
Projects: |
Studies of globally distributed software application teams | |
Links: |
[CHASE 2009 Paper] [ICGSE 2008 Paper] [CHASE 2008 Paper] |
Title: |
Dissertation: Programming by Voice |
|
Projects: |
Code Dictation, Editing by Voice, SPEED: SPEech EDitor, Commenting by Voice, User Studies, Blender Lexer and Parser Generator, Inheritance Graph-based Persistent, Incremental Semantic Analysis, Harmonia: Incremental Lexer, Parser, Semantic Analyses for Java, C, Scheme, Cool | |
Links: |
[Ph.D. Dissertation] [SPEED Movie (700 MB)] [VL/HCC 2006 Paper] [VL/HCC 2005 Paper] [VL/HCC 2005 Talk] [AVIOS 2005 Paper] [AVIOS 2005 Talk] [SIGCSE 2002 Talk] [VL/HCC 2004 Talk] [Software Engineering Class Project Commenting By Voice Report] [LDTA 2004 Paper] [LDTA 2004 Talk] [Language Plugin Generation] [Harmonia] [Download It] |
Title: |
StarLogo |
|
Projects: |
MacStarLogo Classic, StarLogo, StarLogo TNG, Adventures in Modeling Workshops | |
Links: |
[Journal of E-Learning 2007 Paper] [Kybernetes Journal 2003 Paper] [StarLogo Home Page] [StarLogo TNG Home Page] [Adventures in Modeling Home Page] |
Title: |
Older Projects |
|
Projects: |
BPF+ Packet Filter, Active Messages over VIA, Object-oriented Type Evolution (at Xerox PARC), Titanium, YoYo | |
Links: |
[BPF+: SIGCOMM 1999 Paper] [SIGCOMM 99 Talk] [AM over VIA: Concurrency and Computation 2002 Paper] [OO Type Evolution: WET-ICE 1999 Paper] [Titanium Home Page] [YoYo Home Page] |
I taught an after-school program to four 8th grade boys to teach them about complex systems and how to program in StarLogo. At first it was slow-going for some of the kids, but by the end, all really understood programming, and half of them understood complex systems!
In Spring 2001, I co-designed and co-taught CS301: Teaching Techniques for Computer Science, with Dan Garcia. CS301 is a class to teach first-time TAs in the Computer Science Division how to be the greatest TAs they can be. It was truly awesome.
In Spring 2000, I helped out my friend Laura Allen by being a workshop leader for the TechGyrl's '99 program. I put together a collection of ideas (that I snagged and rearranged from Gary Stager's Logo page) for MicroworldsLogo and LegoDacta.
In Spring 2000, I TAd (GSId) CS164, a class called Introduction to Compilers. It's for junior/senior-level Berkeley undergrads.
In Fall 1997, I TAd CS61a, the intro CS course at Berkeley. It's taught by Brian Harvey. CS61a is a Berkeley port of 6.001, which I took at MIT in 1993. It uses the Scheme programming language to introduce students to the zen of programming. After this course, learning any other programming language is cake.
I grew up in southeastern New York, in Rockland County. I've lived in NY, Boston, San Francisco and now Seattle. The rectangle of my life is now complete. For more information (and pictures), see my personal home page.