Key points are not available for this paper at this time.
La réparation de programme automatisée a été utilisée pour fournir des retours sur les travaux de programmation incorrects des étudiants, car la réparation de programme capte la modification de code nécessaire pour faire passer un programme comportant des erreurs dans une suite de tests donnée. Les techniques existantes de génération de feedback pour les étudiants sont limitées, car elles nécessitent soit un effort manuel sous la forme d'un modèle d'erreur, soit un grand nombre de soumissions correctes d'étudiants à partir desquelles apprendre, soit souffrent d'un manque d'évolutivité et de précision. Dans ce travail, nous proposons une approche entièrement automatisée pour générer des réparations de programmes d'étudiants en temps réel. Cela est réalisé en refactorisant d'abord toutes les solutions correctes disponibles en solutions sémantiquement équivalentes. Étant donné un programme incorrect, nous faisons correspondre le programme avec le programme refactorisé le plus proche en fonction de sa structure de flux de contrôle. Par la suite, nous déduisons les spécifications d'entrée-sortie des blocs de base du programme incorrect à partir des exécutions des blocs de base alignés du programme correct. Enfin, ces spécifications sont utilisées pour modifier les blocs du programme incorrect via une synthèse basée sur la recherche. Notre ensemble de données se compose de près de 1 800 soumissions de programmes Python incorrects de la vie réelle provenant de 361 étudiants pour un cours d'introduction à la programmation dans une grande université publique. Nos résultats expérimentaux suggèrent que notre méthode est plus efficace et efficiente que les approches récentes de génération de feedback. Environ 30 % des correctifs produits par notre outil Refactory sont plus petit que ceux produits par l'outil de pointe Clara, et peuvent être générés à partir de moins de solutions correctes (souvent une seule solution correcte) et dans un délai plus court. Nous pensons que notre méthode est applicable non seulement aux travaux de programmation, mais pourrait être vue comme une méthode de réparation de programme à usage général qui peut obtenir de bons résultats avec juste une seule solution de référence correcte.
Yang et al. (Fri,) ont étudié cette question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: