mlsanityData to 14 Oct 2026

InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments

arXiv 2206.14175 ↗First posted 28 Jun 2022cs.SE cs.AI cs.CYcited by 4

Not on the map. Why?

Abstract (arXiv)

Due to the vast number of students enrolled in programming courses, there has been an increasing number of automated program repair techniques focused on introductory programming assignments (IPAs). Typically, such techniques use program clustering to take advantage of previous correct student implementations to repair a new incorrect submission. These repair techniques use clustering methods since analyzing all available correct submissions to repair a program is not feasible. However, conventional clustering methods rely on program representations based on features such as abstract syntax trees (ASTs), syntax, control flow, and data flow. This paper proposes InvAASTCluster, a novel approach for program clustering that uses dynamically generated program invariants to cluster semantically equivalent IPAs. InvAASTCluster's program representation uses a combination of the program's semantics, through its invariants, and its structure through its anonymized abstract syntax tree (AASTs). Invariants denote conditions that must remain true during program execution, while AASTs are ASTs devoid of variable and function names, retaining only their types. Our experiments show that the proposed program representation outperforms syntax-based representations when clustering a set of correct IPAs. Furthermore, we integrate InvAASTCluster into a state-of-the-art clustering-based program repair tool. Our results show that InvAASTCluster advances the current state-of-the-art when used by clustering-based repair tools by repairing around 13% more students' programs, in a shorter amount of time.

Key facts. Cited by 4 papers in the map (data through 14 Oct 2026). Builds on 15 of its 72 references that are in the map. First posted on arXiv 28 Jun 2022.

Builds on

15 of 72 references.

References · 15

  1. 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,310
  2. 2018code2seq: Generating Sequences from Structured Representations of Codecited by 179
  3. 2021Language-Agnostic Representation Learning of Source Code from Structure and Contextcited by 63
  4. 2018Aroma: Code Recommendation via Structural Code Searchcited by 29
  5. 2016Automated Clustering and Program Repair for Introductory Programming Assignmentscited by 21
  6. 2019Automated Classification of Overfitting Patches with Statically Extracted Code Featurescited by 10
  7. 2017Data-Driven Feedback Generation for Introductory Programming Exercisescited by 9
  8. 2021Verifix: Verified Repair of Programming Assignmentscited by 7
  9. 2022C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignmentscited by 5
  10. 2021Cross-Language Code Search using Static and Dynamic Analysescited by 4
  11. 2021FAPR: Fast and Accurate Program Repair for Introductory Programming Coursescited by 4
  12. 2014Feedback Generation for Performance Problems in Introductory Programming Assignmentscited by 3
3 more
  1. 2019Targeted Example Generation for Compilation Errorscited by 3
  2. 2020Program Equivalence for Assisted Grading of Functional Programs (Extended Version)cited by 2
  3. 2016Semi-Supervised Verified Feedback Generationcited by 1

Built on by

Cited by year

Citing papers per year: 2023: 1; 2024: 2; 2025: 1.

4 papers.