Title
InFix - Automatically Repairing Novice Program Inputs.
Abstract
This paper presents InFix, a technique for automatically fixing erroneous program inputs for novice programmers. Unlike comparable existing approaches for automatic debugging and maintenance tasks, InFix repairs input data rather than source code, does not require test cases, and does not require special annotations. Instead, we take advantage of patterns commonly used by novice programmers to automatically create helpful, high quality input repairs. InFix iteratively applies error-message based templates and random mutations based on insights about the debugging behavior of novices. This paper presents an implementation of InFix for Python. We evaluate on 25,995 unique scenarios with input-related errors collected from four years of data from Python Tutor, a free online programming tutoring environment. Our results generalize and scale; compared to previous work, we consider an order of magnitude more unique programs. Overall, InFix is able to repair 94.5% of deterministic input errors. We also present the results of a human study with 97 participants. Surprisingly, this simple approach produces high quality repairs; humans judged the output of InFix to be equally helpful and within 4% of the quality of human-generated repairs.
Year
DOI
Venue
2019
10.1109/ASE.2019.00045
ASE
Keywords
Field
DocType
input repair, novice programs, human study
TUTOR,Human study,Programming language,Source code,Computer science,Theoretical computer science,Infix,Test case,Python (programming language),Debugging
Conference
ISSN
ISBN
Citations 
1938-4300
978-1-7281-2508-4
2
PageRank 
References 
Authors
0.36
0
5
Name
Order
Citations
PageRank
Madeline Endres133.07
Georgios Sakkas230.70
Benjamin Cosman3111.86
Ranjit Jhala42183111.68
Westley Weimer53510162.27