Automated Clustering and Program Repair for Introductory Programming Assignments
Not on the map. Why?
Abstract (arXiv)
Providing feedback on programming assignments is a tedious task for the instructor, and even impossible in large Massive Open Online Courses with thousands of students. Previous research has suggested that program repair techniques can be used to generate feedback in programming education. In this paper, we present a novel fully automated program repair algorithm for introductory programming assignments. The key idea of the technique, which enables automation and scalability, is to use the existing correct student solutions to repair the incorrect attempts. We evaluate the approach in two experiments: (I) We evaluate the number, size and quality of the generated repairs on 4,293 incorrect student attempts from an existing MOOC. We find that our approach can repair 97% of student attempts, while 81% of those are small repairs of good quality. (II) We conduct a preliminary user study on performance and repair usefulness in an interactive teaching setting. We obtain promising initial results (the average usefulness grade 3.4 on a scale from 1 to 5), and conclude that our approach can be used in an interactive setting.
Key facts. Cited by 21 papers in the map (data through 14 Oct 2026). First posted on arXiv 10 Mar 2016.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 2; 2022: 5; 2023: 8; 2024: 4; 2025: 1; 2026: 1.
21 papers.
Sort:
- 2022GitHub Copilot AI pair programmer: Asset or Liability?cited by 152
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Modelscited by 119
- 2023Is ChatGPT the Ultimate Programming Assistant -- How far is it?cited by 76
- 2023Generating High-Precision Feedback for Programming Syntax Errors using Large Language Modelscited by 34
- 2023Automating Human Tutor-Style Programming Feedback: Leveraging GPT-4 Tutor Model for Hint Generation and GPT-3.5 Student Model for Hint Validationcited by 29
- 2022Repairing Bugs in Python Assignments Using Large Language Modelscited by 28
- 2024Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localizationcited by 8
- 2024CursorCore: Assist Programming through Aligning Anythingcited by 7
- 2023Students' Perceptions and Preferences of Generative Artificial Intelligence Feedback for Programmingcited by 6
- 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
- 2023A review of clustering models in educational data science towards fairness-aware learningcited by 3
9 more
- 2023Program Repair with Minimal Edits Using CodeT5cited by 2
- 2024Benchmarking Educational Program Repaircited by 2
- 2025Navigating Pitfalls: Evaluating LLMs in Machine Learning Programming Educationcited by 2
- 2021Automating Program Structure Classificationcited by 1
- 2021ast2vec: Utilizing Recursive Neural Encodings of Python Programscited by 0
- 2022Efficient Feedback and Partial Credit Grading for Proof Blocks Problemscited by 0
- 2023Graph Neural Networks For Mapping Variables Between Programs -- Extended Versioncited by 0
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignmentscited by 0
- 2026An Explainable AI Assistant for Introductory Programming Education: Improving Feedback Reliability with Instructor-AI Collaborationcited by 0
- 2026An Explainable AI Assistant for Introductory Programming Education: Improving Feedback Reliability with Instructor-AI Collaboration12 May 2026
- 2025Navigating Pitfalls: Evaluating LLMs in Machine Learning Programming Education23 May 2025
- 2024Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization19 Dec 2024
- 2024CursorCore: Assist Programming through Aligning Anything9 Oct 2024
- 2024Benchmarking Educational Program Repair8 May 2024
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments2 Apr 2024
- 2023Students' Perceptions and Preferences of Generative Artificial Intelligence Feedback for Programming17 Dec 2023
- 2023Automating Human Tutor-Style Programming Feedback: Leveraging GPT-4 Tutor Model for Hint Generation and GPT-3.5 Student Model for Hint Validation5 Oct 2023
- 2023Program Repair with Minimal Edits Using CodeT526 Sep 2023
- 2023Graph Neural Networks For Mapping Variables Between Programs -- Extended Version24 Jul 2023
- 2023Is ChatGPT the Ultimate Programming Assistant -- How far is it?24 Apr 2023
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Models8 Mar 2023
9 more
- 2023Generating High-Precision Feedback for Programming Syntax Errors using Large Language Models24 Jan 2023
- 2023A review of clustering models in educational data science towards fairness-aware learning9 Jan 2023
- 2022Repairing Bugs in Python Assignments Using Large Language Models29 Sep 2022
- 2022GitHub Copilot AI pair programmer: Asset or Liability?30 Jun 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
- 2022Efficient Feedback and Partial Credit Grading for Proof Blocks Problems8 Apr 2022
- 2021ast2vec: Utilizing Recursive Neural Encodings of Python Programs22 Mar 2021
- 2021Automating Program Structure Classification15 Jan 2021
- 2022GitHub Copilot AI pair programmer: Asset or Liability?cited by 152
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Modelscited by 119
- 2023Is ChatGPT the Ultimate Programming Assistant -- How far is it?cited by 76
- 2023Generating High-Precision Feedback for Programming Syntax Errors using Large Language Modelscited by 34
- 2023Automating Human Tutor-Style Programming Feedback: Leveraging GPT-4 Tutor Model for Hint Generation and GPT-3.5 Student Model for Hint Validationcited by 29
- 2022Repairing Bugs in Python Assignments Using Large Language Modelscited by 28
- 2024Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localizationcited by 8
- 2024CursorCore: Assist Programming through Aligning Anythingcited by 7
- 2023Students' Perceptions and Preferences of Generative Artificial Intelligence Feedback for Programmingcited by 6
- 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
- 2023A review of clustering models in educational data science towards fairness-aware learningcited by 3
12 most cited of 21 All 21 (JSON)
- 2026An Explainable AI Assistant for Introductory Programming Education: Improving Feedback Reliability with Instructor-AI Collaboration12 May 2026
- 2025Navigating Pitfalls: Evaluating LLMs in Machine Learning Programming Education23 May 2025
- 2024Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization19 Dec 2024
- 2024CursorCore: Assist Programming through Aligning Anything9 Oct 2024
- 2024Benchmarking Educational Program Repair8 May 2024
- 2024Peer-aided Repairer: Empowering Large Language Models to Repair Advanced Student Assignments2 Apr 2024
- 2023Students' Perceptions and Preferences of Generative Artificial Intelligence Feedback for Programming17 Dec 2023
- 2023Automating Human Tutor-Style Programming Feedback: Leveraging GPT-4 Tutor Model for Hint Generation and GPT-3.5 Student Model for Hint Validation5 Oct 2023
- 2023Program Repair with Minimal Edits Using CodeT526 Sep 2023
- 2023Graph Neural Networks For Mapping Variables Between Programs -- Extended Version24 Jul 2023
- 2023Is ChatGPT the Ultimate Programming Assistant -- How far is it?24 Apr 2023
- 2023Baldur: Whole-Proof Generation and Repair with Large Language Models8 Mar 2023
12 newest of 21 All 21 (JSON)