Flexible control flow graph alignment for delivering data-driven feedback to novice programming learners

Supporting learners in introductory programming assignments at scale is a necessity. This support includes automated feedback on what learners did incorrectly. Existing approaches cast the problem as automatically repairing learners’ incorrect programs extrapolating the data from an existing correct...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:The Journal of systems and software Ročník 210; s. 111960
Hlavní autori: Chowdhury, Md Towhidul Absar, Contractor, Maheen Riaz, Rivero, Carlos R.
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: Elsevier Inc 01.04.2024
Predmet:
ISSN:0164-1212
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Abstract Supporting learners in introductory programming assignments at scale is a necessity. This support includes automated feedback on what learners did incorrectly. Existing approaches cast the problem as automatically repairing learners’ incorrect programs extrapolating the data from an existing correct program from other learners. However, such approaches are limited because they only compare programs with similar control flow and order of statements. A potentially valuable set of repair feedback from flexible comparisons is thus missing. In this paper, we present several modifications to CLARA, a data-driven automated repair approach that is open source, to deal with real-world introductory programs. We extend CLARA’s abstract syntax tree processor to handle common introductory programming constructs. Additionally, we propose a flexible alignment algorithm over control flow graphs where we enrich nodes with semantic annotations extracted from programs using operations and calls. Using this alignment, we modify an incorrect program’s control flow graph to match correct programs to apply CLARA’s original repair process. We evaluate our approach against a baseline on the twenty most popular programming problems in Codeforces. Our results indicate that flexible alignment has a significantly higher percentage of successful repairs at 46% compared to 5% for baseline CLARA. Our implementation is available at https://github.com/towhidabsar/clara. •We adapt a “search, align and repair” approach to fix novice learner programs.•We present a flexible program alignment scheme that enhances repair capabilities.•Our experiments use programs from twenty real-world programming assignments.•Our flexible scheme outperforms the original: 46% vs. 5% repair success rate.•Our implementation is available at https://github.com/towhidabsar/clara.
AbstractList Supporting learners in introductory programming assignments at scale is a necessity. This support includes automated feedback on what learners did incorrectly. Existing approaches cast the problem as automatically repairing learners’ incorrect programs extrapolating the data from an existing correct program from other learners. However, such approaches are limited because they only compare programs with similar control flow and order of statements. A potentially valuable set of repair feedback from flexible comparisons is thus missing. In this paper, we present several modifications to CLARA, a data-driven automated repair approach that is open source, to deal with real-world introductory programs. We extend CLARA’s abstract syntax tree processor to handle common introductory programming constructs. Additionally, we propose a flexible alignment algorithm over control flow graphs where we enrich nodes with semantic annotations extracted from programs using operations and calls. Using this alignment, we modify an incorrect program’s control flow graph to match correct programs to apply CLARA’s original repair process. We evaluate our approach against a baseline on the twenty most popular programming problems in Codeforces. Our results indicate that flexible alignment has a significantly higher percentage of successful repairs at 46% compared to 5% for baseline CLARA. Our implementation is available at https://github.com/towhidabsar/clara. •We adapt a “search, align and repair” approach to fix novice learner programs.•We present a flexible program alignment scheme that enhances repair capabilities.•Our experiments use programs from twenty real-world programming assignments.•Our flexible scheme outperforms the original: 46% vs. 5% repair success rate.•Our implementation is available at https://github.com/towhidabsar/clara.
ArticleNumber 111960
Author Contractor, Maheen Riaz
Chowdhury, Md Towhidul Absar
Rivero, Carlos R.
Author_xml – sequence: 1
  givenname: Md Towhidul Absar
  orcidid: 0000-0002-7260-4693
  surname: Chowdhury
  fullname: Chowdhury, Md Towhidul Absar
  email: mac9908@rit.edu
– sequence: 2
  givenname: Maheen Riaz
  surname: Contractor
  fullname: Contractor, Maheen Riaz
  email: mc1927@rit.edu
– sequence: 3
  givenname: Carlos R.
  orcidid: 0000-0002-5770-950X
  surname: Rivero
  fullname: Rivero, Carlos R.
  email: crr@cs.rit.edu
BookMark eNp9kMFOwzAMhnMYEtvgAbjlBVqSdm1XcUITA6RJXOAcpY6zpaTJlFQD3p5U48RhJ8vW_1n2tyAz5x0ScsdZzhmv7_u8jzEvWLHKOedtzWZknuarjBe8uCaLGHvGWJMCc3LYWvw2nUUK3o3BW6qt_6L7II8HKq3ZuwHdSLUPVKE1JwzG7amSo8xUSK2jGlF1Ej7p6KnzJwNIj8GnBcMwRS3K4DDEG3KlpY14-1eX5GP79L55yXZvz6-bx10G6bgxawB0VUOlWdF1smB1JctaM6mhYqVaqxKhajveaN6yRhfQls0KVA1qzVStU3hJ-HkvBB9jQC2OwQwy_AjOxKRH9CLpEZMecdaTmOYfA2aUo5mMSGMvkg9nEtNLJ4NBRDDoAJUJCKNQ3lygfwECFoaU
CitedBy_id crossref_primary_10_1016_j_jss_2025_112481
Cites_doi 10.1145/3192366.3192387
10.1145/1150402.1150522
10.1145/2837614.2837617
10.1145/3377814.3381707
10.1145/2984043.2989222
10.1109/ASE.2019.00044
10.1145/3106237.3106262
10.1145/2531602.2531657
10.1007/978-3-319-35122-3_21
10.1016/j.jss.2023.111822
10.1007/978-3-030-80421-3_27
10.1145/3510418
10.1207/s15326985ep4102_1
10.1007/s10009-012-0249-7
10.1145/3051457.3051467
10.1109/ICSE.2017.44
10.1145/2566486.2568023
10.1109/ASE.2017.8115676
10.1145/2737924.2737988
10.1145/2491956.2462195
10.1109/ICSE.2012.6227183
10.1109/ICDE.2017.169
10.1007/978-3-319-41540-6_21
10.1109/ICSE-SEET.2019.00022
10.1109/ICSME55016.2022.00022
10.1109/ISSRE.2010.36
10.1007/978-3-031-09680-8_30
10.1145/2839509.2844660
10.1145/3180155.3180245
ContentType Journal Article
Copyright 2024 Elsevier Inc.
Copyright_xml – notice: 2024 Elsevier Inc.
DBID AAYXX
CITATION
DOI 10.1016/j.jss.2024.111960
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
ExternalDocumentID 10_1016_j_jss_2024_111960
S0164121224000037
GroupedDBID --K
--M
-~X
.DC
.~1
0R~
1B1
1~.
1~5
29L
4.4
457
4G.
5GY
5VS
7-5
71M
8P~
9JN
9M8
AABNK
AACTN
AAEDT
AAEDW
AAIKJ
AAKOC
AALRI
AAOAW
AAQFI
AAQXK
AATTM
AAXKI
AAXUO
AAYFN
AAYOK
ABBOA
ABDPE
ABEFU
ABFNM
ABFRF
ABFSI
ABJNI
ABMAC
ABTAH
ABWVN
ABXDB
ACDAQ
ACGFO
ACGFS
ACGOD
ACNNM
ACRLP
ACRPL
ACZNC
ADBBV
ADEZE
ADHUB
ADJOM
ADMUD
ADNMO
AEBSH
AEFWE
AEIPS
AEKER
AENEX
AFJKZ
AFTJW
AGHFR
AGUBO
AGYEJ
AHHHB
AHZHX
AI.
AIALX
AIEXJ
AIKHN
AITUG
AKRWK
ALMA_UNASSIGNED_HOLDINGS
AMRAJ
ANKPU
AOUOD
ASPBG
AVWKF
AXJTR
AZFZN
BKOJK
BKOMP
BLXMC
BNPGV
CS3
DU5
E.L
EBS
EFJIC
EJD
EO8
EO9
EP2
EP3
FDB
FEDTE
FGOYB
FIRID
FNPLU
FYGXN
G-Q
GBLVA
GBOLZ
HLZ
HVGLF
HZ~
IHE
J1W
KOM
LG9
M41
MO0
MS~
N9A
O-L
O9-
OAUVE
OZT
P-8
P-9
P2P
PC.
PQQKQ
Q38
R2-
RIG
RNS
ROL
RPZ
RXW
SBC
SDF
SDG
SDP
SES
SEW
SPC
SPCBC
SSH
SSV
SSZ
T5K
TAE
TN5
TWZ
UHS
UNMZH
VH1
WUQ
XPP
ZMT
ZY4
~G-
9DU
AAYWO
AAYXX
ACLOT
ACVFH
ADCNI
AEUPX
AFPUW
AGQPQ
AIGII
AIIUN
AKBMS
AKYEP
APXCP
CITATION
EFKBS
EFLBG
~HD
ID FETCH-LOGICAL-c212t-7ccf56c5f02bba2065a36f0afc503d8d3ec59b17f1907f2c9374cd6cd80d6f5a3
ISSN 0164-1212
IngestDate Sat Nov 29 07:22:03 EST 2025
Tue Nov 18 22:04:59 EST 2025
Sun Apr 06 06:53:47 EDT 2025
IsPeerReviewed true
IsScholarly true
Keywords Approximate graph alignment
Automated program repair
Data-driven feedback
Control flow graph
Language English
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-c212t-7ccf56c5f02bba2065a36f0afc503d8d3ec59b17f1907f2c9374cd6cd80d6f5a3
ORCID 0000-0002-5770-950X
0000-0002-7260-4693
ParticipantIDs crossref_primary_10_1016_j_jss_2024_111960
crossref_citationtrail_10_1016_j_jss_2024_111960
elsevier_sciencedirect_doi_10_1016_j_jss_2024_111960
PublicationCentury 2000
PublicationDate April 2024
2024-04-00
PublicationDateYYYYMMDD 2024-04-01
PublicationDate_xml – month: 04
  year: 2024
  text: April 2024
PublicationDecade 2020
PublicationTitle The Journal of systems and software
PublicationYear 2024
Publisher Elsevier Inc
Publisher_xml – name: Elsevier Inc
References Harper (b10) 2016
Roy, Cordy, Koschke (b34) 2009; 74
Long, F., Rinard, M., 2016. Automatic patch generation by learning correct code. In: POPL. pp. 298–312.
Yi, J., Ahmed, U.Z., Karkare, A., Tan, S.H., Roychoudhury, A., 2017. A feasibility study of using automated program repair for introductory programming assignments. In: ESEC/FSE. pp. 740–751.
Marin, V.J., Pereira, T., Sridharan, S., Rivero, C.R., 2017. Automated personalized feedback in introductory Java programming MOOCs. In: ICDE. pp. 1259–1270.
Nguyen, A., Piech, C., Huang, J., Guibas, L.J., 2014. Codewebs: Scalable homework search for massive open online programming courses. In: WWW. pp. 491–502.
Liu, C., Chen, C., Han, J., Yu, P.S., 2006. GPLAG: Detection of software plagiarism by program dependence graph analysis. In: KDD. pp. 872–881.
Rodriguez (b32) 2012; 15
Toledo, Martínez-López (b39) 2017; 47
Coetzee, D., Fox, A., Hearst, M.A., Hartmann, B., 2014. Should your MOOC forum use a reputation system?. In: CSCW. pp. 1176–1187.
Piech, C., Huang, J., Nguyen, A., Phulsuksombati, M., Sahami, M., Guibas, L.J., 2015. Learning Program Embeddings to Propagate Feedback on Student Code. In: ICML. pp. 1093–1102.
Li, Wu, Liu, Shen, Wu, Zhang, Chen (b20) 2023; 205
Hu, Y., Ahmed, U.Z., Mechtaev, S., Leong, B., Roychoudhury, A., 2019a. Re-Factoring Based Program Repair Applied to Programming Assignments. In: ASE. pp. 388–398.
Monperrus (b27) 2018; 51
Nguyen, T., Le-Cong, T., Luong, D., Duong, V., Le, X.D., Lo, D., Huynh, Q., 2022. FFL: Fine-grained Fault Localization for Student Programs via Syntactic and Semantic Reasoning. In: ICSME. pp. 151–162.
Xin, Q., Reiss, S.P., 2017. Leveraging syntax-related code for automated program repair. In: ASE. pp. 660–670.
Liu, X., Wang, S., Wang, P., Wu, D., 2019. Automatic grading of programming assignments: an approach based on formal semantics. In: ICSE. pp. 126–137.
Mirzayanov (b26) 2018
Marin, V.J., Contractor, M.R., Rivero, C.R., 2021. Flexible Program Alignment to Deliver Data-Driven Feedback to Novice Programmers. In: ITS, Vol. 12677. pp. 247–258.
Pu, Y., Narasimhan, K., Solar-Lezama, A., Barzilay, R., 2016. sk_p: A neural program corrector for MOOCs. In: SPLASH. pp. 39–40.
Gulwani, S., Radicek, I., Zuleger, F., 2018. Automated clustering and program repair for introductory programming assignments. In: PLDI. pp. 465–480.
Contractor, M.R., Rivero, C.R., 2022. Improving Program Matching to Automatically Repair Introductory Programs. In: ITS. pp. 323–335.
Wang, Singh, Su (b40) 2018
Xu, Chee (b42) 2003; 29
Head, A., Glassman, E., Soares, G., Suzuki, R., Figueredo, L., D’Antoni, L., Hartmann, B., 2017. Writing Reusable Code Feedback at Scale with Mixed-Initiative Program Synthesis. In: L@S. pp. 89–98.
da F. Costa (b7) 2021
Ahmed, Fan, Yi, Al-Bataineh, Roychoudhury (b1) 2022; 31
Edmison, B., Edwards, S.H., 2020. Turn up the heat!: using heat maps to visualize suspicious code to help students successfully complete programming problems faster. In: ICSE-SEET. pp. 34–44.
Kirschner, Sweller, Clark (b16) 2006; 41
Li, J., Ernst, M.D., 2012. CBCD: Cloned buggy code detector. In: ICSE. pp. 310–320.
Sidiroglou-Douskos, S., Lahtinen, E., Long, F., Rinard, M., 2015. Automatic error elimination by horizontal code transfer across multiple applications. In: PLDI. pp. 43–54.
Zweben, Bizot (b44) 2016
Rolim, R., Soares, G., D’Antoni, L., Polozov, O., Gulwani, S., Gheyi, R., Suzuki, R., Hartmann, B., 2017. Learning syntactic program transformations from examples. In: ICSE. pp. 404–415.
Huang, J., Piech, C., Nguyen, A., Guibas, L.J., 2013. Syntactic and Functional Variability of a Million Code Submissions in a Machine Learning MOOC. In: AIED Workshops.
Li, W., Saidi, H., Sanchez, H., Schäf, M., Schweitzer, P., 2016. Detecting Similar Programs via The Weisfeiler-Leman Graph Kernel. In: ICSR. pp. 315–330.
Le Goues, Nguyen, Forrest, Weimer (b17) 2012; 38
Hu, Y., Ahmed, U.Z., Mechtaev, S., Leong, B., Roychoudhury, A., 2019b. Re-Factoring Based Program Repair Applied to Programming Assignments. In: ASE. pp. 388–398.
Singh, R., Gulwani, S., Solar-Lezama, A., 2013. Automated feedback generation for introductory programming assignments. In: PLDI. pp. 15–26.
Sun, B., Shu, G., Podgurski, A., Li, S., Zhang, S., Yang, J., 2010. Propagating bug fixes with fast subgraph matching. In: ISSRE. pp. 21–30.
Garcia, D.D., Campbell, J., DeNero, J., Dorf, M.L., Reges, S., 2016. CS10K Teachers by 2017?: Try CS1K+ students NOW! Coping with the Largest CS1 Courses in History. In: SIGCSE. pp. 396–397.
Solar-Lezama (b37) 2013; 15
Hua, J., Zhang, M., Wang, K., Khurshid, S., 2018. Towards practical program repair with on-demand candidate generation. In: ICSE. pp. 12–23.
Chen, Tworek, Jun, Yuan, de Oliveira Pinto, Kaplan, Edwards, Burda, Joseph, Brockman, Ray, Puri, Krueger, Petrov, Khlaaf, Sastry, Mishkin, Chan, Gray, Ryder, Pavlov, Power, Kaiser, Bavarian, Winter, Tillet, Such, Cummings, Plappert, Chantzis, Barnes, Herbert-Voss, Guss, Nichol, Paino, Tezak, Tang, Babuschkin, Balaji, Jain, Saunders, Hesse, Carr, Leike, Achiam, Misra, Morikawa, Radford, Knight, Brundage, Murati, Mayer, Welinder, McGrew, Amodei, McCandlish, Sutskever, Zaremba (b2) 2021
D’Antoni, L., Samanta, R., Singh, R., 2016. Qlose: Program repair with quantitative objectives. In: CAV. pp. 383–401.
Monperrus (10.1016/j.jss.2024.111960_b27) 2018; 51
10.1016/j.jss.2024.111960_b13
10.1016/j.jss.2024.111960_b35
10.1016/j.jss.2024.111960_b12
10.1016/j.jss.2024.111960_b15
10.1016/j.jss.2024.111960_b14
Li (10.1016/j.jss.2024.111960_b20) 2023; 205
10.1016/j.jss.2024.111960_b36
Solar-Lezama (10.1016/j.jss.2024.111960_b37) 2013; 15
10.1016/j.jss.2024.111960_b38
Xu (10.1016/j.jss.2024.111960_b42) 2003; 29
10.1016/j.jss.2024.111960_b19
10.1016/j.jss.2024.111960_b18
Roy (10.1016/j.jss.2024.111960_b34) 2009; 74
da F. Costa (10.1016/j.jss.2024.111960_b7) 2021
Le Goues (10.1016/j.jss.2024.111960_b17) 2012; 38
10.1016/j.jss.2024.111960_b31
10.1016/j.jss.2024.111960_b30
10.1016/j.jss.2024.111960_b11
10.1016/j.jss.2024.111960_b33
Rodriguez (10.1016/j.jss.2024.111960_b32) 2012; 15
Harper (10.1016/j.jss.2024.111960_b10) 2016
Mirzayanov (10.1016/j.jss.2024.111960_b26) 2018
Toledo (10.1016/j.jss.2024.111960_b39) 2017; 47
10.1016/j.jss.2024.111960_b24
10.1016/j.jss.2024.111960_b23
10.1016/j.jss.2024.111960_b25
10.1016/j.jss.2024.111960_b28
10.1016/j.jss.2024.111960_b29
Ahmed (10.1016/j.jss.2024.111960_b1) 2022; 31
Chen (10.1016/j.jss.2024.111960_b2) 2021
10.1016/j.jss.2024.111960_b6
10.1016/j.jss.2024.111960_b5
10.1016/j.jss.2024.111960_b41
10.1016/j.jss.2024.111960_b4
10.1016/j.jss.2024.111960_b22
10.1016/j.jss.2024.111960_b3
10.1016/j.jss.2024.111960_b21
10.1016/j.jss.2024.111960_b43
10.1016/j.jss.2024.111960_b9
Kirschner (10.1016/j.jss.2024.111960_b16) 2006; 41
10.1016/j.jss.2024.111960_b8
Wang (10.1016/j.jss.2024.111960_b40) 2018
Zweben (10.1016/j.jss.2024.111960_b44) 2016
References_xml – year: 2021
  ident: b2
  article-title: Evaluating large language models trained on code, CoRR
– reference: Li, W., Saidi, H., Sanchez, H., Schäf, M., Schweitzer, P., 2016. Detecting Similar Programs via The Weisfeiler-Leman Graph Kernel. In: ICSR. pp. 315–330.
– volume: 15
  year: 2012
  ident: b32
  article-title: MOOCs and the AI-Stanford like courses: Two successful and distinct course formats for massive open online courses
  publication-title: EURODL
– reference: Sidiroglou-Douskos, S., Lahtinen, E., Long, F., Rinard, M., 2015. Automatic error elimination by horizontal code transfer across multiple applications. In: PLDI. pp. 43–54.
– volume: 47
  start-page: 277
  year: 2017
  end-page: 290
  ident: b39
  article-title: A recommendation approach for programming online judges supported by data preprocessing techniques
  publication-title: AI
– reference: Li, J., Ernst, M.D., 2012. CBCD: Cloned buggy code detector. In: ICSE. pp. 310–320.
– reference: Edmison, B., Edwards, S.H., 2020. Turn up the heat!: using heat maps to visualize suspicious code to help students successfully complete programming problems faster. In: ICSE-SEET. pp. 34–44.
– reference: Gulwani, S., Radicek, I., Zuleger, F., 2018. Automated clustering and program repair for introductory programming assignments. In: PLDI. pp. 465–480.
– reference: Liu, C., Chen, C., Han, J., Yu, P.S., 2006. GPLAG: Detection of software plagiarism by program dependence graph analysis. In: KDD. pp. 872–881.
– reference: Sun, B., Shu, G., Podgurski, A., Li, S., Zhang, S., Yang, J., 2010. Propagating bug fixes with fast subgraph matching. In: ISSRE. pp. 21–30.
– volume: 15
  start-page: 475
  year: 2013
  end-page: 495
  ident: b37
  article-title: Program sketching
  publication-title: STTT
– reference: Yi, J., Ahmed, U.Z., Karkare, A., Tan, S.H., Roychoudhury, A., 2017. A feasibility study of using automated program repair for introductory programming assignments. In: ESEC/FSE. pp. 740–751.
– reference: Hu, Y., Ahmed, U.Z., Mechtaev, S., Leong, B., Roychoudhury, A., 2019a. Re-Factoring Based Program Repair Applied to Programming Assignments. In: ASE. pp. 388–398.
– reference: Hua, J., Zhang, M., Wang, K., Khurshid, S., 2018. Towards practical program repair with on-demand candidate generation. In: ICSE. pp. 12–23.
– volume: 41
  start-page: 75
  year: 2006
  end-page: 86
  ident: b16
  article-title: Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching
  publication-title: Educ. Psychol.
– reference: Xin, Q., Reiss, S.P., 2017. Leveraging syntax-related code for automated program repair. In: ASE. pp. 660–670.
– volume: 74
  start-page: 470
  year: 2009
  end-page: 495
  ident: b34
  article-title: Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
  publication-title: SCP
– reference: Nguyen, A., Piech, C., Huang, J., Guibas, L.J., 2014. Codewebs: Scalable homework search for massive open online programming courses. In: WWW. pp. 491–502.
– reference: Contractor, M.R., Rivero, C.R., 2022. Improving Program Matching to Automatically Repair Introductory Programs. In: ITS. pp. 323–335.
– year: 2016
  ident: b10
  article-title: Practical Foundations for Programming Languages
– reference: Singh, R., Gulwani, S., Solar-Lezama, A., 2013. Automated feedback generation for introductory programming assignments. In: PLDI. pp. 15–26.
– volume: 29
  start-page: 360
  year: 2003
  end-page: 384
  ident: b42
  article-title: Transformation-based diagnosis of student programs for programming tutoring systems
  publication-title: IEEE Trans. Serv. Comput.
– start-page: 481
  year: 2018
  end-page: 495
  ident: b40
  article-title: Search, align, and repair: data-driven feedback generation for introductory programming exercises
  publication-title: PLDI
– reference: D’Antoni, L., Samanta, R., Singh, R., 2016. Qlose: Program repair with quantitative objectives. In: CAV. pp. 383–401.
– reference: Liu, X., Wang, S., Wang, P., Wu, D., 2019. Automatic grading of programming assignments: an approach based on formal semantics. In: ICSE. pp. 126–137.
– reference: Piech, C., Huang, J., Nguyen, A., Phulsuksombati, M., Sahami, M., Guibas, L.J., 2015. Learning Program Embeddings to Propagate Feedback on Student Code. In: ICML. pp. 1093–1102.
– reference: Marin, V.J., Contractor, M.R., Rivero, C.R., 2021. Flexible Program Alignment to Deliver Data-Driven Feedback to Novice Programmers. In: ITS, Vol. 12677. pp. 247–258.
– reference: Garcia, D.D., Campbell, J., DeNero, J., Dorf, M.L., Reges, S., 2016. CS10K Teachers by 2017?: Try CS1K+ students NOW! Coping with the Largest CS1 Courses in History. In: SIGCSE. pp. 396–397.
– year: 2016
  ident: b44
  article-title: 2015 Taulbee Survey
– reference: Huang, J., Piech, C., Nguyen, A., Guibas, L.J., 2013. Syntactic and Functional Variability of a Million Code Submissions in a Machine Learning MOOC. In: AIED Workshops.
– reference: Marin, V.J., Pereira, T., Sridharan, S., Rivero, C.R., 2017. Automated personalized feedback in introductory Java programming MOOCs. In: ICDE. pp. 1259–1270.
– reference: Pu, Y., Narasimhan, K., Solar-Lezama, A., Barzilay, R., 2016. sk_p: A neural program corrector for MOOCs. In: SPLASH. pp. 39–40.
– volume: 38
  start-page: 54
  year: 2012
  end-page: 72
  ident: b17
  article-title: GenProg: A generic method for automatic software repair
  publication-title: IEEE Trans. Serv. Comput.
– year: 2018
  ident: b26
  article-title: Codeforces: Problem difficulties
– reference: Hu, Y., Ahmed, U.Z., Mechtaev, S., Leong, B., Roychoudhury, A., 2019b. Re-Factoring Based Program Repair Applied to Programming Assignments. In: ASE. pp. 388–398.
– reference: Head, A., Glassman, E., Soares, G., Suzuki, R., Figueredo, L., D’Antoni, L., Hartmann, B., 2017. Writing Reusable Code Feedback at Scale with Mixed-Initiative Program Synthesis. In: L@S. pp. 89–98.
– reference: Nguyen, T., Le-Cong, T., Luong, D., Duong, V., Le, X.D., Lo, D., Huynh, Q., 2022. FFL: Fine-grained Fault Localization for Student Programs via Syntactic and Semantic Reasoning. In: ICSME. pp. 151–162.
– volume: 31
  start-page: 74:1
  year: 2022
  end-page: 74:31
  ident: b1
  article-title: Verifix: Verified repair of programming assignments
  publication-title: ACM Trans. Softw. Eng. Methodol.
– reference: Rolim, R., Soares, G., D’Antoni, L., Polozov, O., Gulwani, S., Gheyi, R., Suzuki, R., Hartmann, B., 2017. Learning syntactic program transformations from examples. In: ICSE. pp. 404–415.
– volume: 51
  start-page: 17:1
  year: 2018
  end-page: 17:24
  ident: b27
  article-title: Automatic software repair: A bibliography
  publication-title: CSUR
– volume: 205
  year: 2023
  ident: b20
  article-title: VsusFL: Variable-suspiciousness-based fault localization for novice programs
  publication-title: J. Syst. Softw.
– year: 2021
  ident: b7
  article-title: Further generalizations of the jaccard index, CoRR abs/2110.09619
– reference: Coetzee, D., Fox, A., Hearst, M.A., Hartmann, B., 2014. Should your MOOC forum use a reputation system?. In: CSCW. pp. 1176–1187.
– reference: Long, F., Rinard, M., 2016. Automatic patch generation by learning correct code. In: POPL. pp. 298–312.
– ident: 10.1016/j.jss.2024.111960_b9
  doi: 10.1145/3192366.3192387
– volume: 47
  start-page: 277
  issue: 2
  year: 2017
  ident: 10.1016/j.jss.2024.111960_b39
  article-title: A recommendation approach for programming online judges supported by data preprocessing techniques
  publication-title: AI
– year: 2016
  ident: 10.1016/j.jss.2024.111960_b10
– ident: 10.1016/j.jss.2024.111960_b21
  doi: 10.1145/1150402.1150522
– ident: 10.1016/j.jss.2024.111960_b23
  doi: 10.1145/2837614.2837617
– year: 2016
  ident: 10.1016/j.jss.2024.111960_b44
– ident: 10.1016/j.jss.2024.111960_b6
  doi: 10.1145/3377814.3381707
– ident: 10.1016/j.jss.2024.111960_b31
  doi: 10.1145/2984043.2989222
– ident: 10.1016/j.jss.2024.111960_b13
  doi: 10.1109/ASE.2019.00044
– volume: 38
  start-page: 54
  issue: 1
  year: 2012
  ident: 10.1016/j.jss.2024.111960_b17
  article-title: GenProg: A generic method for automatic software repair
  publication-title: IEEE Trans. Serv. Comput.
– ident: 10.1016/j.jss.2024.111960_b43
  doi: 10.1145/3106237.3106262
– ident: 10.1016/j.jss.2024.111960_b3
  doi: 10.1145/2531602.2531657
– ident: 10.1016/j.jss.2024.111960_b30
– year: 2018
  ident: 10.1016/j.jss.2024.111960_b26
– ident: 10.1016/j.jss.2024.111960_b19
  doi: 10.1007/978-3-319-35122-3_21
– volume: 205
  year: 2023
  ident: 10.1016/j.jss.2024.111960_b20
  article-title: VsusFL: Variable-suspiciousness-based fault localization for novice programs
  publication-title: J. Syst. Softw.
  doi: 10.1016/j.jss.2023.111822
– ident: 10.1016/j.jss.2024.111960_b24
  doi: 10.1007/978-3-030-80421-3_27
– volume: 31
  start-page: 74:1
  issue: 4
  year: 2022
  ident: 10.1016/j.jss.2024.111960_b1
  article-title: Verifix: Verified repair of programming assignments
  publication-title: ACM Trans. Softw. Eng. Methodol.
  doi: 10.1145/3510418
– volume: 41
  start-page: 75
  issue: 2
  year: 2006
  ident: 10.1016/j.jss.2024.111960_b16
  article-title: Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching
  publication-title: Educ. Psychol.
  doi: 10.1207/s15326985ep4102_1
– volume: 15
  start-page: 475
  issue: 5–6
  year: 2013
  ident: 10.1016/j.jss.2024.111960_b37
  article-title: Program sketching
  publication-title: STTT
  doi: 10.1007/s10009-012-0249-7
– ident: 10.1016/j.jss.2024.111960_b11
  doi: 10.1145/3051457.3051467
– ident: 10.1016/j.jss.2024.111960_b15
– ident: 10.1016/j.jss.2024.111960_b33
  doi: 10.1109/ICSE.2017.44
– ident: 10.1016/j.jss.2024.111960_b12
  doi: 10.1109/ASE.2019.00044
– ident: 10.1016/j.jss.2024.111960_b29
  doi: 10.1145/2566486.2568023
– ident: 10.1016/j.jss.2024.111960_b41
  doi: 10.1109/ASE.2017.8115676
– volume: 29
  start-page: 360
  issue: 4
  year: 2003
  ident: 10.1016/j.jss.2024.111960_b42
  article-title: Transformation-based diagnosis of student programs for programming tutoring systems
  publication-title: IEEE Trans. Serv. Comput.
– year: 2021
  ident: 10.1016/j.jss.2024.111960_b7
– year: 2021
  ident: 10.1016/j.jss.2024.111960_b2
– ident: 10.1016/j.jss.2024.111960_b35
  doi: 10.1145/2737924.2737988
– ident: 10.1016/j.jss.2024.111960_b36
  doi: 10.1145/2491956.2462195
– ident: 10.1016/j.jss.2024.111960_b18
  doi: 10.1109/ICSE.2012.6227183
– start-page: 481
  year: 2018
  ident: 10.1016/j.jss.2024.111960_b40
  article-title: Search, align, and repair: data-driven feedback generation for introductory programming exercises
– ident: 10.1016/j.jss.2024.111960_b25
  doi: 10.1109/ICDE.2017.169
– volume: 74
  start-page: 470
  issue: 7
  year: 2009
  ident: 10.1016/j.jss.2024.111960_b34
  article-title: Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
  publication-title: SCP
– ident: 10.1016/j.jss.2024.111960_b5
  doi: 10.1007/978-3-319-41540-6_21
– volume: 15
  issue: 2
  year: 2012
  ident: 10.1016/j.jss.2024.111960_b32
  article-title: MOOCs and the AI-Stanford like courses: Two successful and distinct course formats for massive open online courses
  publication-title: EURODL
– ident: 10.1016/j.jss.2024.111960_b22
  doi: 10.1109/ICSE-SEET.2019.00022
– ident: 10.1016/j.jss.2024.111960_b28
  doi: 10.1109/ICSME55016.2022.00022
– ident: 10.1016/j.jss.2024.111960_b38
  doi: 10.1109/ISSRE.2010.36
– ident: 10.1016/j.jss.2024.111960_b4
  doi: 10.1007/978-3-031-09680-8_30
– volume: 51
  start-page: 17:1
  issue: 1
  year: 2018
  ident: 10.1016/j.jss.2024.111960_b27
  article-title: Automatic software repair: A bibliography
  publication-title: CSUR
– ident: 10.1016/j.jss.2024.111960_b8
  doi: 10.1145/2839509.2844660
– ident: 10.1016/j.jss.2024.111960_b14
  doi: 10.1145/3180155.3180245
SSID ssj0007202
Score 2.410038
Snippet Supporting learners in introductory programming assignments at scale is a necessity. This support includes automated feedback on what learners did incorrectly....
SourceID crossref
elsevier
SourceType Enrichment Source
Index Database
Publisher
StartPage 111960
SubjectTerms Approximate graph alignment
Automated program repair
Control flow graph
Data-driven feedback
Title Flexible control flow graph alignment for delivering data-driven feedback to novice programming learners
URI https://dx.doi.org/10.1016/j.jss.2024.111960
Volume 210
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVESC
  databaseName: Elsevier SD Freedom Collection Journals 2021
  issn: 0164-1212
  databaseCode: AIEXJ
  dateStart: 19950101
  customDbUrl:
  isFulltext: true
  dateEnd: 99991231
  titleUrlDefault: https://www.sciencedirect.com
  omitProxy: false
  ssIdentifier: ssj0007202
  providerName: Elsevier
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1db9MwFLVKxwMvfCPGl_zAE1WqxPl-nKZNgGBC00B9i2I7Ji0hmZpunfgb_GHuje0kGwyxB16iKrJdt_fo-sg-95iQ1z6s2jx1lVOwmDmBx4STJiEHIscDkfAw1xVyXz7ER0fJYpF-mkx-2lqY8yqu6-TiIj39r6GGdxBsLJ29Qbj7QeEFfIagwxPCDs9_CvwhWlxiPZRVoauq2c46Y-oZkO6v-vgf1YWyqFCVgZsFKBR15BpT30zBgsZz8Q1pad1gJrEqru_YtLtnwujmLa0dCsw6aqvtobX7cwt5fpsPEtv9stnK0pzef0Qdz7ZcyjMACm_zXimMplnrXB8oYEFRiVqy42X-oz8gwpk3RrJSNe3seD7ewGBj3YvZ04zQOtG7lJSZEbvqtAoJOdXXDvyW8fXmw2q-atF8nQXzoe1ld-0rq16vRbQyt1UGQ2Q4RKaHuEV2WBymyZTs7L07WLzvF_iYdVLWft72sLyTDV6Zx5_pzojCnNwnd02A6J7GzAMyKeqH5J6914OaNP-IlBZC1ECIIoRoByHaQ4gChOgAITqCELUQopuGagjREYSohdBj8vnw4GT_rWNu5HAE_M6NEwuhwkiEymWc5wzoa-5Hys2VCF1fJtIvRJhyL1ZAM2PFBHDfQMhIyMSVkYLGT8i0buriKaHQI4UOkc8LDiRe5lHg8hCNcz3o4kW7xLV_XCaMXT3emlJl1wZsl7zpu5xqr5a_NQ5sNDJDNjWJzABZ13d7dpPveE7uDIB_Qaab9VnxktwW55tlu35lYPULwKWj4w
linkProvider Elsevier
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Flexible+control+flow+graph+alignment+for+delivering+data-driven+feedback+to+novice+programming+learners&rft.jtitle=The+Journal+of+systems+and+software&rft.au=Chowdhury%2C+Md+Towhidul+Absar&rft.au=Contractor%2C+Maheen+Riaz&rft.au=Rivero%2C+Carlos+R.&rft.date=2024-04-01&rft.issn=0164-1212&rft.volume=210&rft.spage=111960&rft_id=info:doi/10.1016%2Fj.jss.2024.111960&rft.externalDBID=n%2Fa&rft.externalDocID=10_1016_j_jss_2024_111960
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0164-1212&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0164-1212&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0164-1212&client=summon