Student Refactoring Behaviour in a Programming Tutor

Publication date

2020

Authors

Keuning, HiekeISNI 000000049290580X
Heeren, B.J.ISNI 0000000396075391
Jeuring, J.T.ISNI 0000000110063265

Editors

Falkner, Nick
Seppala, Otto

Advisors

Supervisors

Document Type

Part of book
Open Access logo

License

taverne

Abstract

Producing high-quality code is essential for professionals working on maintainable software. However, awareness of code quality is also important for novices. In addition to writing programs meeting functional requirements, teachers would like to see their students write understandable, concise and efficient code. Unfortunately, time to address these qualitative aspects is limited. We have developed a tutoring system for programming that teaches students to refactor functionally correct code, focussing on the method-level. The tutoring system provides automated feedback and layered hints. This paper describes the results of a study of 133 students working with the tutoring system. We analyse log data to see how they approach the exercises, and how they use the hints and feedback to refactor code. In addition, we analyse the results of a student survey. We found that students with some background in programming were generally able to identify issue in code and solve them (on average 92%), that they used hints at various levels, and we noticed occasional learning in recurring issues. They struggled most with simplifying complex control flow. Students generally valued the topic of code quality and working with the tutor. Finally, we derive improvements for the tutoring system to strengthen students’ comprehension of refactoring.

Keywords

Taverne

Citation

Keuning, H W, Heeren, B J & Jeuring, J T 2020, Student Refactoring Behaviour in a Programming Tutor. in N Falkner & O Seppala (eds), Koli Calling '20: Proceedings of the 20th Koli Calling International Conference on Computing Education Research., 4, Association for Computing Machinery, New York, pp. 1-10. https://doi.org/10.1145/3428029.3428043