Student Refactoring Behaviour in a Programming Tutor

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

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.
Original languageEnglish
Title of host publicationKoli Calling '20: Proceedings of the 20th Koli Calling International Conference on Computing Education Research
Editors Nick Falkner, Otto Seppala
Place of PublicationNew York
PublisherAssociation for Computing Machinery
Pages1-10
ISBN (Print)978-1-4503-8921-1
DOIs
Publication statusPublished - 2020

Fingerprint

Dive into the research topics of 'Student Refactoring Behaviour in a Programming Tutor'. Together they form a unique fingerprint.

Cite this