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 29,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.
Wed 13 NovDisplayed time zone: Tijuana, Baja California change
10:40 - 12:20 | Program RepairResearch Papers / Demonstrations / Journal First Presentations at Cortez 2&3 Chair(s): Yingfei Xiong Peking University | ||
10:40 20mTalk | Apricot: A Weight-Adaptation Approach to Fixing Deep Learning Models Research Papers | ||
11:00 20mTalk | Re-factoring based Program Repair applied to Programming Assignments Research Papers Yang Hu The University of Texas at Austin, Umair Z. Ahmed National University of Singapore, Sergey Mechtaev University College London, Ben Leong National University of Singapore, Abhik Roychoudhury National University of Singapore Pre-print | ||
11:20 20mTalk | InFix: Automatically Repairing Novice Program Inputs Research Papers Madeline Endres University of Michigan, Georgios Sakkas University of California, San Diego, Benjamin Cosman University of California at San Diego, USA, Ranjit Jhala University of California, San Diego, Westley Weimer University of Michigan Pre-print | ||
11:40 20mTalk | Astor: Exploring the Design Space of Generate-and-Validate Program Repair beyond GenProg Journal First Presentations Matias Martinez Université Polytechnique Hauts-de-France, Martin Monperrus KTH Royal Institute of Technology Pre-print | ||
12:00 10mDemonstration | PraPR: Practical Program Repair via Bytecode Mutation Demonstrations | ||
12:10 10mTalk | Understanding Automatically-Generated Patches Through Symbolic Invariant Differences Research Papers Padraic Cashin Arizona State University, Cari Martinez University of New Mexico, Stephanie Forrest Arizona State University, Westley Weimer University of Michigan Pre-print |