Andrew Head is a Ph.D. Candidate in Computer Science at UC Berkeley. He studies how interactive tools, imbued with thoughtful program analysis, can help programmers fashion learning resources like tutorials, notebooks, code examples, and programming feedback.

Andrew studies with Björn Hartmann and Marti Hearst. He has designed developer tools as a research intern at Microsoft Research and Google. Andrew’s work has received numerous paper awards and nominations at top conferences like the ACM CHI Conference on Human Factors in Computing Systems.

Last summer, Andrew co-taught UC Berkeley’s undergraduate course on UI design and development. The project theme was authoring tools. Andrew also helps coordinate EECS Peers, a graduate student group dedicated to supporting fellow students with graduate school life.

Research Highlights

A notebook for authoring programming tutorials with flexibly-organized snippets.
CHI '20
Tools for finding, cleaning, and comparing versions of code in computational notebooks.
CHI '19
Mixed-initiative interfaces for propagating teacher feedback in massive classrooms.
Learning@Scale '17

Recent News

May 2020: Check out my dissertation talk, Interactive Program Distillation, on YouTube!

December 2019: Our paper on tutorial authoring was accepted to CHI '20! Composing Step-by-Step Tutorials from Linked Source Code, Snippets, and Outputs.

December 2019: Invited talk at Apple: Notebooks, Narratives, and 'Nteractions.

October 2019: A delightful chat with the Write the Docs podcast on "Researching how developers use API docs". Watch the podcast here, and then read more in our ICSE '18 paper.

Peer-Reviewed Publications

Composing Flexibly-Organized Step-by-Step Tutorials from Linked Source Code, Snippets, and Outputs
Andrew Head, Jason Jiang, James Smith, Marti A. Hearst, Björn Hartmann
ACM Conference on Human Factors in Computing Systems, 2020
Nominated for Best Paper Award
Managing Messes in Computational Notebooks
Andrew Head, Fred Hohman, Titus Barik, Steven M. Drucker, and Robert DeLine
ACM Conference on Human Factors in Computing Systems, 2019
Best Paper Award
Gamut: A Design Probe to Understand How Data Scientists Understand Machine Learning Models
Fred Hohman, Andrew Head, Rich Caruana, Robert DeLine, and Steven M. Drucker
ACM Conference on Human Factors in Computing Systems, 2019
Interactive Extraction of Examples from Existing Code
Andrew Head, Elena L. Glassman, Björn Hartmann, and Marti A. Hearst
ACM Conference on Human Factors in Computing Systems, 2018
Nominated for Best Paper Award
WiFröst: Bridging the Information Gap for Debugging of Networked Embedded Systems
Will McGrath, Jeremy Warner, Mitchell Karchemsky, Andrew Head, Daniel Drew, and Björn Hartmann
ACM User Interfaces Software and Technology Symposium, 2018
When Not to Comment: Questions and Tradeoffs with API Documentation for C++ Projects
Andrew Head, Caitlin Sadowski, Emerson Murphy-Hill, and Andrea Knight
ACM International Conference on Software Engineering, 2018
Writing Reusable Code Feedback at Scale with Mixed-Initiative Program Synthesis
Andrew Head, Elena Glassman, Gustavo Soares, Ryo Suzuki, Lucas Figueredo, Loris D'Antoni, and Björn Hartmann
ACM Conference on Learning at Scale, 2017
Can Human Development be Measured with Satellite Imagery?
Andrew Head, Mélanie Manguin, Nhat Tran, and Joshua E. Blumenstock
International Conference on Information and Communication Technologies and Development, 2017
TraceDiff: Debugging Unexpected Code Behavior Using Trace Divergences
Ryo Suzuki, Gustavo Soares, Andrew Head, Elena Glassman, Ruan Reis, Melina Mongiovi, Loris D'Antoni, and Björn Hartmann
IEEE Symposium on Visual Languages and Human-Centric Computing, 2017
Tutorons: Generating Context-Relevant, On-Demand Explanations and Demonstrations of Online Code
Andrew Head, Codanda Appachu, Marti A. Hearst, and Björn Hartmann
IEEE Symposium on Visual Languages and Human-Centric Computing, 2015
Nominated for Best Paper Award
Lamello: Passive Acoustic Sensing for Tangible Input Components
Valkyie Savage, Andrew Head, Wilmot Li, Gautham Mysore, Dan B Goldman, and Björn Hartmann
ACM Conference on Human Factors in Computing Systems, 2015
ToneWars: Connecting Language Learners and Native Speakers through Collaborative Mobile Games
Andrew Head, Yi Xu, and Jingtao Wang
International Conference on Intelligent Tutoring Systems, 2014