- Authors: Yang Hu, Umair Z. Ahmed, Sergey Mechtaev, Ben Leong, and Abhik Roychoudhury
- Published: November 2019
- Source: Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering (ASE 2019)
- Location: San Diego, CA, USA
- Document Link: https://dl.acm.org/doi/10.1109/ASE.2019.00044
This paper proposes a fully automated framework that generates program repairs for incorrect student assignments in real-time. By re-factoring existing correct solutions into various semantically equivalent forms, the system can precisely match a student’s buggy code to the closest correct structure and suggest minimal, accurate fixes.
- The Limitation of Existing Tools: Traditional feedback tools often require manual error modeling, a massive dataset of correct solutions, or suffer from poor scalability when dealing with diverse student coding styles.
- The Re-factoring Approach: The authors introduce a technique that takes available correct solutions and automatically generates numerous “refactored” versions that are functionally identical but structurally different.
- Structural Matching: When a student submits incorrect code, the system analyzes its control flow and matches it with the most similar refactored correct solution, ensuring the feedback is relevant to the student’s specific logic.
- Semantic Analysis: The framework uses symbolic execution and input-output specifications to infer exactly which parts of the student’s code need to be changed, allowing for the synthesis of precise repairs.
- Key Performance: Experimental results show that this approach is both fast and accurate, providing high-quality repairs in seconds, which is essential for providing immediate feedback in large-scale programming classes.

Leave a Reply