Skip to main content

Improving Program Matching to Automatically Repair Introductory Programs

  • Conference paper
  • First Online:
Intelligent Tutoring Systems (ITS 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13284))

Included in the following conference series:

Abstract

Automated program repair is a promising approach to deliver feedback to novice learners at scale. CLARA is an effective repairer that uses a correct program to fix an incorrect program. CLARA suffers from two main issues: rigid matching and lack of support for typical constructs and tasks in introductory programming assignments. We present several modifications to CLARA to overcome these problems. We propose approximate graph matching based on semantic and topological information of the programs compared, and modify CLARA’s abstract syntax tree processor and interpreter to support new constructs and tasks like reading from/writing to console. Our experiments show that, thanks to our modifications, we can apply CLARA to real-world programs. Also, our approximate graph matching allows us to repair many incorrect programs that are not repaired using rigid program matching.

This material is based upon work supported by the National Science Foundation under Grant No. 1915404.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 69.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Approximate graph matching for CLARA. github.com/mcontractor/clara/

  2. Cherry. codeforces.com/problemset/problem/1554/A

  3. CLuster And RepAir tool for introductory programming assignments. github.com/iradicek/clara/

  4. Less or equal. codeforces.com/problemset/problem/977/C

  5. Who’s opposite? codeforces.com/problemset/problem/1560/B

  6. Camp, T., Zweben, S.H., Buell, D.A., Stout, J.: Booming enrollments: survey data. In: SIGCSE, pp. 398–399 (2016)

    Google Scholar 

  7. Gulwani, S., Radicek, I., Zuleger, F.: Automated clustering and program repair for introductory programming assignments. In: PLDI, pp. 465–480 (2018)

    Google Scholar 

  8. Hu, Y., Ahmed, U.Z., Mechtaev, S., Leong, B., Roychoudhury, A.: Re-factoring based program repair applied to programming assignments. In: ASE, pp. 388–398 (2019)

    Google Scholar 

  9. Marin, V.J., Contractor, M.R., Rivero, C.R.: Flexible program alignment to deliver data-driven feedback to novice programmers. In: ITS, pp. 247–258 (2021)

    Google Scholar 

  10. Marin, V.J., Pereira, T., Sridharan, S., Rivero, C.R.: Automated personalized feedback in introductory Java programming MOOCs. In: ICDE, pp. 1259–1270 (2017)

    Google Scholar 

  11. Marin, V.J., Rivero, C.R.: Clustering recurrent and semantically cohesive program statements in introductory programming assignments. In: CIKM, pp. 911–920 (2019)

    Google Scholar 

  12. Monperrus, M.: Automatic software repair: a bibliography. CSUR 51(1), 1–24 (2018)

    Article  Google Scholar 

  13. Piech, C., Huang, J., Nguyen, A., Phulsuksombati, M., Sahami, M., Guibas, L.J.: Learning program embeddings to propagate feedback on student code. In: ICML, pp. 1093–1102 (2015)

    Google Scholar 

  14. Pu, Y., Narasimhan, K., Solar-Lezama, A., Barzilay, R.: sk_p: a neural program corrector for MOOCs. In: OOPSLA Workshops, pp. 39–40 (2016)

    Google Scholar 

  15. Rolim, R., et al.: Learning syntactic program transformations from examples. In: ICSE, pp. 404–415 (2017)

    Google Scholar 

  16. Singh, R., Gulwani, S., Solar-Lezama, A.: Automated feedback generation for introductory programming assignments. In: PLDI, pp. 15–26 (2013)

    Google Scholar 

  17. Wang, K., Singh, R., Su, Z.: Search, align, and repair: data-driven feedback generation for introductory programming exercises. In: PLDI, pp. 481–495 (2018)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Maheen Riaz Contractor .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Contractor, M.R., Rivero, C.R. (2022). Improving Program Matching to Automatically Repair Introductory Programs. In: Crossley, S., Popescu, E. (eds) Intelligent Tutoring Systems. ITS 2022. Lecture Notes in Computer Science, vol 13284. Springer, Cham. https://doi.org/10.1007/978-3-031-09680-8_30

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-09680-8_30

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-09679-2

  • Online ISBN: 978-3-031-09680-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics