Exploring the Learnability of Program Synthesizers by Novice Programmers

要旨

Modern program synthesizers are increasingly delivering on their promise of lightening the burden of programming by automatically generating code, but little research has addressed how we can make such systems learnable to all. In this work, we ask: What aspects of program synthesizers contribute to and detract from their learnability by novice programmers? We conducted a thematic analysis of 22 observations of novice programmers, during which novices worked with existing program synthesizers, then participated in semi-structured interviews. Our findings shed light on how their specific points in the synthesizer design space affect these tools' learnability by novice programmers, including the type of specification the synthesizer requires, the method of invoking synthesis and receiving feedback, and the size of the specification. We also describe common misconceptions about what constitutes meaningful progress and useful specifications for the synthesizers, as well as participants' common behaviors and strategies for using these tools. From this analysis, we offer a set of design opportunities to inform the design of future program synthesizers that strive to be learnable by novice programmers. This work serves as a first step toward understanding how we can make program synthesizers more learnable by novices, which opens up the possibility of using program synthesizers in educational settings as well as developer tooling oriented toward novice programmers.

著者
Dhanya Jayagopal
University of California, Berkeley, Berkeley, California, United States
Justin Lubin
University of California, Berkeley, Berkeley, California, United States
Sarah E.. Chasins
University of California, Berkeley, Berkeley, California, United States
論文URL

https://doi.org/10.1145/3526113.3545659

会議: UIST 2022

The ACM Symposium on User Interface Software and Technology

セッション: Programming, Kits, and Libraries

6 件の発表
2022-11-01 23:30:00
2022-11-02 01:00:00