Interactive Tools for Creating and Explaining Code Examples

Producing great code examples is a time-intensive, iterative, and fundamentally creative process. In this talk I describe interactive tools that help programmers capture and share their expertise. I will describe two such tools: CodeScoop helps programmers write tutorials by helping them extract self-contained, executable code examples that capture the essence of important patterns in their code. Tutorons detect code examples in tutorial pages and automatically generate explanations of the tricky parts of their syntax. These tools build on code analysis techniques including incremental program slicing, runtime code instrumentation, and natural language generation based on a program’s parse tree. They are assessed with formal usability studies, which find the approaches effective. Tools like these will one day help programmers capture and share programming knowledge otherwise locked away in their minds and code.

Andrew Head is a PhD candidate at UC Berkeley Electrical Engineering and Computer Sciences. In his dissertation research, he studies how interactive tools can help programmers share their expertise. Andrew is advised by Björn Hartmann and Marti Hearst. He has built and studied software engineering tools with research teams at Google and Microsoft Research as a research intern. His research is supported by an NDSEG fellowship, and has been nominated for best paper awards at VL/HCC and CHI.