Julien Lienard et al. CEUR Workshop Proceedings 1–8
error that we discovered manually in the students’ code
while analysing the dataset, as explained in Section 4.1.
At the time of writing, about 66 students have given
this revision exercise at least one try. Of those, 23 stu-
dents received at least one of the 4 dedicated feedbacks
that we added to this exercise. We analysed the submis-
sion of those 23 students and saw that the given feedback
was useful for at least 6 of them. Indeed, we could ob-
serve that, after they took the feedback into account, the
students obtained a better score for the question and
didn’t match the pattern anymore after they corrected
their code.
5. Conclusion
In this paper we explored whether we could identify re-
current patterns highlighting errors or bad practices in
students’ code and use them to create more advanced
feedback to be included in an autograder. We did so by
rst mining the solutions of a large amount of students
for frequently occurring patterns using the FREQTALS
tree mining algorithm. We then manually analysed each
of these patterns to nd those that match typical mis-
takes that many students seem to make in their solution.
We also found that for some of these patterns, creating
advanced feedback when they are detected could help
student produce code of better quality.
Our second step was then, for the selected patterns, to
automatically extract unit tests that match exactly the
same source code as the mined patterns. These unit tests,
which would thus check for typical coding errors made
by students, could then be extended by a teacher with
a more personalized feedback on that particular kind
of error. These unit tests can then be included in an
autograder so that students making these mistakes get
more accurate feedback on the errors they make.
As both the FREQTALS miner and the test generation
tool in essence only require an AST to mine for patterns
and generate the tests, these tools can easily be applied
to other programming languages than Python as well.
In this work in progress paper, we mainly presented
our vision and the current implementation of our tool
prototype. Although we have started exploring the usage
of this tool on real data, for now the purpose of the vali-
dation was more to ensure that the tool has potential and
is working correctly. Obviously a more thorough and
in-depth validation on more data and with real students
and teachers is still needed. On the one hand we want to
study and understand how teachers use the tool and how
the tool can be improved further to satisfy their needs.
On the other hand we want to validate that the students
eectively benet from the improved feedback provided
by the generated test suites (i.e., better scores and better
code quality).
References
[1]
G. Derval, A. Gego, P. Reinbold, B. Frantzen,
P. Van Roy, Automatic grading of programming
exercises in a MOOC using the INGInious platform,
European Stakeholder Summit on experiences and
best practices in and around MOOCs (EMOOCS’15)
(2015) 86–91.
[2]
H. S. Pham, S. Nijssen, K. Mens, D. D. Nucci,
T. Molderez, C. D. Roover, J. Fabry, V. Zaytsev, Min-
ing patterns in source code using tree mining algo-
rithms, in: International Conference on Discovery
Science, Springer, 2019, pp. 471–480.
[3]
K. Mens, S. Nijssen, H.-S. Pham, The good, the
bad, and the ugly: mining for patterns in student
source code, in: Proceedings of the 3rd Interna-
tional Workshop on Education through Advanced
Software Engineering and Articial Intelligence,
2021, pp. 1–8.
[4]
H. Keuning, J. Jeuring, B. Heeren, Towards a sys-
tematic review of automated feedback generation
for programming exercises, Association for Com-
puting Machinery, New York, NY, USA, 2016.
[5]
S. Narciss, Feedback Strategies for Interactive Learn-
ing Tasks, 2008, pp. 125–144.
[6]
G. Haldeman, A. Tjang, M. Babeş-Vroman, S. Bartos,
J. Shah, D. Yucht, T. D. Nguyen, Providing mean-
ingful feedback for autograding of programming
assignments, Association for Computing Machin-
ery, New York, NY, USA, 2018.
[7]
R. Singh, S. Gulwani, A. Solar-Lezama, Automated
feedback generation for introductory programming
assignments, in: Proceedings of the 34th ACM
SIGPLAN conference on Programming language
design and implementation, 2013, pp. 15–26.
[8]
S. Gulwani, I. Radiček, F. Zuleger, Automated clus-
tering and program repair for introductory pro-
gramming assignments, ACM SIGPLAN Notices 53
(2018) 465–480.
[9]
A. Nguyen, C. Piech, J. Huang, L. Guibas, Codewebs:
Scalable homework search for massive open on-
line programming courses, in: Proceedings of the
23rd International Conference on World Wide Web,
ACM, 2014, pp. 491–502. doi:
10.1145/2566486.
2568023.
[10]
T. Asai, K. Abe, S. Kawasoe, H. Sakamoto,
H. Arimura, S. Arikawa, Ecient substructure
discovery from large semi-structured data, IEICE
TRANSACTIONS on Information and Systems 87
(2004) 2754–2763.
8