Writing Reusable Code Feedback at Scale with Mixed-Initiative Program Synthesis

被引:67
作者
Head, Andrew [1 ]
Glassman, Elena [1 ]
Soares, Gustavo [1 ,2 ]
Suzuki, Ryo [3 ]
Figueredo, Lucas [2 ]
D'Antoni, Loris [4 ]
Hartmann, Bjorn [1 ]
机构
[1] Univ Calif Berkeley, Berkeley, CA 94720 USA
[2] Univ Fed Campina Grande, Campina Grande, Paraiba, Brazil
[3] CU Boulder, Boulder, CO USA
[4] UW Madison, Madison, WI USA
来源
PROCEEDINGS OF THE FOURTH (2017) ACM CONFERENCE ON LEARNING @ SCALE (L@S'17) | 2017年
基金
美国国家科学基金会;
关键词
programming education; program synthesis; GENERATION;
D O I
10.1145/3051457.3051467
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
In large introductory programming classes, teacher feedback on individual incorrect student submissions is often infeasible. Program synthesis techniques are capable of fixing student bugs and generating hints automatically, but they lack the deep domain knowledge of a teacher and can generate functionally correct but stylistically poor fixes. We introduce a mixed-initiative approach which combines teacher expertise with data-driven program synthesis techniques. We demonstrate our novel approach in two systems that use different interaction mechanisms. Our systems use program synthesis to learn bug-fixing code transformations and then cluster incorrect submissions by the transformations that correct them. The MISTAKEBROWSER system learns transformations from examples of students fixing bugs in their own submissions. The FIXPROPAGATOR system learns transformations from teachers fixing bugs in incorrect student submissions. Teachers can write feedback about a single submission or a cluster of submissions and propagate the feedback to all other submissions that can be fixed by the same transformation. Two studies suggest this approach helps teachers better understand student bugs and write reusable feedback that scales to a massive introductory programming classroom.
引用
收藏
页码:89 / 98
页数:10
相关论文
共 23 条
[1]  
Ambrose S.A., 2010, HOW LEARNING WORKS
[2]  
[Anonymous], 2010, P 12 INT ACM SIGPLAN, DOI DOI 10.1145/1836089.1836091
[3]   How Can Automatic Feedback Help Students Construct Automata? [J].
D'Antoni, Loris ;
Kini, Dileep ;
Alur, Rajeev ;
Gulwani, Sumit ;
Viswanathan, Mahesh ;
Hartmann, Bjoern .
ACM TRANSACTIONS ON COMPUTER-HUMAN INTERACTION, 2015, 22 (02)
[4]  
Draper S.W., 1986, User Centered System Design: New Perspectives on Human-Computer Interaction, DOI 10.1201/b15703
[5]   Emergent, Crowd-scale Programming Practice in the IDE [J].
Fast, Ethan ;
Steffee, Daniel ;
Wang, Lucy ;
Brandt, Joel ;
Bernstein, Michael S. .
32ND ANNUAL ACM CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS (CHI 2014), 2014, :2491-2500
[6]   Learnersourcing Personalized Hints [J].
Glassman, Elena L. ;
Lin, Aaron ;
Cai, Carrie J. ;
Miller, Robert C. .
ACM CONFERENCE ON COMPUTER-SUPPORTED COOPERATIVE WORK AND SOCIAL COMPUTING (CSCW 2016), 2016, :1626-1636
[7]   Foobaz: Variable Name Feedback for Student Code at Scale [J].
Glassman, Elena L. ;
Fischer, Lyla ;
Scott, Jeremy ;
Miller, Robert C. .
UIST'15: PROCEEDINGS OF THE 28TH ANNUAL ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY, 2015, :609-617
[8]   OverCode: Visualizing Variation in Student Solutions to Programming Problems at Scale [J].
Glassman, Elena L. ;
Scott, Jeremy ;
Singh, Rishabh ;
Guo, Philip J. ;
Miller, Robert C. .
ACM TRANSACTIONS ON COMPUTER-HUMAN INTERACTION, 2015, 22 (02)
[9]   Codeopticon: Real-Time, One-To-Many Human Tutoring for Computer Programming [J].
Guo, Philip J. .
UIST'15: PROCEEDINGS OF THE 28TH ANNUAL ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY, 2015, :599-608
[10]  
Hartmann B, 2010, CHI2010: PROCEEDINGS OF THE 28TH ANNUAL CHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS, VOLS 1-4, P1019