Data-Driven Feedback Generation for Introductory Programming Exercises
Not on the map. Why?
Abstract (arXiv)
This paper introduces the "Search, Align, and Repair" data-driven program repair framework to automate feedback generation for introductory programming exercises. Distinct from existing techniques, our goal is to develop an efficient, fully automated, and problem-agnostic technique for large or MOOC-scale introductory programming courses. We leverage the large amount of available student submissions in such settings and develop new algorithms for identifying similar programs, aligning correct and incorrect programs, and repairing incorrect programs by finding minimal fixes. We have implemented our technique in the SARFGEN system and evaluated it on thousands of real student attempts from the Microsoft-DEV204.1X edX course and the Microsoft CodeHunt platform. Our results show that SARFGEN can, within two seconds on average, generate concise, useful feedback for 89.7% of the incorrect student submissions. It has been integrated with the Microsoft-DEV204.1X edX class and deployed for production use.
Key facts. Cited by 9 papers in the map (data through 14 Oct 2026). First posted on arXiv 20 Nov 2017.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2022: 4; 2023: 2; 2024: 3.
9 papers.
- 2024RepairAgent: An Autonomous, LLM-Based Agent for Program Repaircited by 232
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Modelscited by 119
- 2022Repairing Bugs in Python Assignments Using Large Language Modelscited by 28
- 2022Towards Process-Oriented, Modular, and Versatile Question Generation that Meets Educational Needscited by 19
- 2023RunBugRun -- An Executable Dataset for Automated Program Repaircited by 11
- 2024Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localizationcited by 8
- 2022C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignmentscited by 5
- 2022InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignmentscited by 4
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignmentscited by 0
- 2024Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization19 Dec 2024
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments2 Apr 2024
- 2024RepairAgent: An Autonomous, LLM-Based Agent for Program Repair25 Mar 2024
- 2023RunBugRun -- An Executable Dataset for Automated Program Repair3 Apr 2023
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Models8 Mar 2023
- 2022Repairing Bugs in Python Assignments Using Large Language Models29 Sep 2022
- 2022InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments28 Jun 2022
- 2022C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignments17 Jun 2022
- 2022Towards Process-Oriented, Modular, and Versatile Question Generation that Meets Educational Needs30 Apr 2022