The DOI matches its Crossref record; 27 of the 27 references it cites were found in a registry or an index.
Search, align, and repair: data-driven feedback generation for introductory programming exercises
Abstract
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.
Overview
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
In the citing paper
“While these approaches generate repairs more quickly, they often produce imprecise and non-minimal fixes (Wang, Singh, and Su 2018).”
From Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization (2025) · cites this paper as Wang, Singh, and Su 2018
Citations
Cites
Glove: Global Vectors for Word Representation
Pennington, J., Socher, R., & Manning, C. (2014) · Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP) · doi:10.3115/v1/d14-1162 · Cited by 34,071
Beniger, J. R., & Tukey, J. W. (1978) · Contemporary Sociology · doi:10.2307/2065930 · Cited by 2,607
Simple Fast Algorithms for the Editing Distance between Trees and Related Problems
Zhang, K., & Shasha, D. (1989) · SIAM Journal on Computing · doi:10.1137/0218082 · Cited by 1,310
Simplifying and isolating failure-inducing input
Zeller, A., & Hildebrandt, R. (2002) · IEEE Transactions on Software Engineering · doi:10.1109/32.988498 · Cited by 1,079
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
Jiang, L., Misherghi, G., Su, Z., & Glondu, S. (2007) · 29th International Conference on Software Engineering (ICSE'07) · doi:10.1109/icse.2007.30 · Cited by 1,039
Self-citationThe Tree-to-Tree Correction Problem
Tai, K.-C. (1979) · Journal of the ACM · doi:10.1145/322139.322143 · Cited by 865
Automatic patch generation by learning correct code
Long, F., & Rinard, M. (2016) · Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages · doi:10.1145/2837614.2837617 · Cited by 481
Automated feedback generation for introductory programming assignments
Singh, R., Gulwani, S., & Solar-Lezama, A. (2013) · Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation · doi:10.1145/2491956.2462195 · Cited by 383
Self-citationFrom symptom to cause: localizing errors in counterexample traces
Ball, T., Naik, M., & Rajamani, S. K. (2003) · Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages · doi:10.1145/604131.604140 · Cited by 294
A genetic programming approach to automated software repair
Forrest, S., Nguyen, T. H., Weimer, W. R., & Goues, C. L. (2009) · Genetic and Evolutionary Computation Conference (GECCO) · doi:10.1145/1569901.1570031 · Cited by 233
Using Mutation to Automatically Suggest Fixes for Faulty Programs
Debroy, V., & Wong, W. E. (2010) · IEEE International Conference on Software Testing, Verification and Validation (ICST) · doi:10.1109/icst.2010.66 · Cited by 228
Jobstmann, B., Griesmayer, A., & Bloem, R. (2005) · Lecture notes in computer science · doi:10.1007/11513988_23 · Cited by 225
Glassman, E. L., Scott, J., Singh, R., Guo, P. J., & Miller, R. C. (2015) · ACM Transactions on Computer-Human Interaction · doi:10.1145/2699751 · Cited by 200
Self-citationLearning syntactic program transformations from examples.
de Sousa, R. R. (2018) · LA Referencia (Red Federada de Repositorios Institucionales de Publicaciones Científicas) · Cited by 198
On the automation of fixing software bugs
Arcuri, A. (2008) · ACM/IEEE International Conference on Software Engineering: Companion Proceedings (ICSE-Companion) · doi:10.1145/1370175.1370223 · Cited by 125
sk_p: a neural program corrector for MOOCs
Pu, Y., Narasimhan, K., Solar-Lezama, A., & Barzilay, R. (2016) · ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH) · doi:10.1145/2984043.2989222 · Cited by 120
Automated clustering and program repair for introductory programming assignments
Gulwani, S., Radiček, I., & Zuleger, F. (2018) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/3192366.3192387 · Cited by 115
Jose, M., & Majumdar, R. (2011) · ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) · doi:10.1145/1993498.1993550 · Cited by 105
Qlose: Program Repair with Quantitative Objectives
D’Antoni, L., Samanta, R., & Singh, R. K. (2016) · Lecture notes in computer science · doi:10.1007/978-3-319-41540-6_21 · Cited by 102
Self-citationSpecification-Based Program Repair Using SAT
Gopinath, D., Malik, M. Z., & Khurshid, S. (2011) · Lecture notes in computer science · doi:10.1007/978-3-642-19835-9_15 · Cited by 101
Automated error localization and correction for imperative programs
Könighofer, R., & Bloem, R. (2011) · doi:10.5555/2157654.2157671 · Cited by 79
Staber, S., Jobstmann, B., & Bloem, R. (2005) · Lecture notes in computer science · doi:10.1007/11560548_6 · Cited by 72
Feedback generation for performance problems in introductory programming assignments
Gulwani, S., Radiček, I., & Zuleger, F. (2014) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/2635868.2635912 · Cited by 71
Semi-supervised verified feedback generation
Kaleeswaran, S., Santhiar, A., Kanade, A., & Gulwani, S. (2016) · ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE) · doi:10.1145/2950290.2950363 · Cited by 64
Tillmann, N., de Halleux, J., Xie, T., & Bishop, J. (2014) · doi:10.1145/2556325.2567870 · Cited by 34
Apex: automatic programming assignment error explanation
Kim, D., Kwon, Y., Liu, P., Kim, I. L., Perry, D. M., Zhang, X., & Rodriguez-Rivera, G. (2016) · Conference on Object-Oriented Programming Systems, Languages, and Applications · doi:10.1145/2983990.2984031 · Cited by 24
Learning to Grade Student Programs in a Massive Open Online Course
Drummond, A., Lu, Y., Chaudhuri, S., Jermaine, C., Warren, J. D., & Rixner, S. (2014) · Proceedings · doi:10.1109/icdm.2014.142 · Cited by 23
Research works printed but not linked: 4
- Alex Groce , Sagar Chaki , Daniel Kroening , and Ofer Strichman . 2006. Error explanation with distance metrics. Tools and Algorithms for the Construction and Analysis of Systems: 10th International Conference , TACAS 2004 , Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2004, Barcelona, Spain, March 29 - April 2, 2004. Proceedings 8, 3 (2006), 229–247. Alex Groce, Sagar Chaki, Daniel Kroening, and Ofer Strichman. 2006. Error explanation with distance metrics. Tools and Algorithms for the Construction and Analysis of Systems: 10th International Conference, TACAS 2004, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2004, Barcelona, Spain, March 29 - April 2, 2004. Proceedings 8, 3 (2006), 229–247.
- Ulrich Junker . 2004 . QUICKXPLAIN: Preferred Explanations and Relaxations for Over-constrained Problems . In Proceedings of the 19th National Conference on Artifical Intelligence. AAAI Press, 167–172 . Ulrich Junker. 2004. QUICKXPLAIN: Preferred Explanations and Relaxations for Over-constrained Problems. In Proceedings of the 19th National Conference on Artifical Intelligence. AAAI Press, 167–172.
- Tomas Mikolov Ilya Sutskever Kai Chen Greg S Corrado and Jeff Dean. 2013. Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems. 3111–3119. Tomas Mikolov Ilya Sutskever Kai Chen Greg S Corrado and Jeff Dean. 2013. Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems. 3111–3119.
- 10.1109/ICSE.2017.44 · DOI
Cited by
(2025) · doi:10.1109/icse55347.2025.00157 · Cited by 157
Baldur: Whole-Proof Generation and Repair with Large Language Models
First, E., Rabe, M. N., Ringer, T., & Brun, Y. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616243 · Cited by 94
Counterexample Guided Program Repair Using Zero-Shot Learning and MaxSAT-based Fault Localization
Orvalho, P., Janota, M., & Manquinho, V. (2025) · arXiv · doi:10.48550/arxiv.2502.07786 · Cited by 4
Metadata
- Authors
- Wang, K., Singh, R., & Su, Z.
- Affiliations
- University of California at Davis, USA
- Microsoft Research, USA
- Venue
- ACM SIGPLAN Notices
- Published
- 2018-06-11
- Volume
- 53
- Issue
- 4
- Pages
- 481-495
- ISSN
- 0362-1340
- 1558-1160
- Cited by
- 17
- References
- 27
- Language
- en
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.