Apprentissage d'embeddings de codes pour l'enseignement de la programmation : une approche fondée sur l'analyse des traces d'exécution
Résumé
Améliorer l'efficacité pédagogique des plateformes d'entraînement à
la programmation est une problématique en pleine effervescence qui nécessite
de construire des représentations fines et exploitables des programmes d'apprenants.
Cet article présente une nouvelle approche pour l'apprentissage d'embeddings
de programmes. Partant de l'hypothèse que la fonctionnalité d'un programme,
mais aussi son "style", peuvent être capturés par l'analyse des traces
d'exécutions, la méthode code2aes2vec procède en deux étapes. Une première
étape génère des séquences d'exécutions abstraites (AES) à partir de tests unitaires
et des arbres syntaxiques abstraits (AST) des programmes soumis. La
méthode doc2vec est ensuite utilisée pour apprendre des représentations vectorielles
condensées (embeddings) des programmes à partir de ces AES. Cette
contribution donne également lieu à l'exploitation et la mise à disposition de
nouveaux jeux de données réelles. Une première évaluation réalisée sur ces données
montre que les embeddings générés par code2aes2vec semblent capturer
efficacement la fonctionnalité et le style des programmes.