Investigating Student Reasoning in Method-Level Code Refactoring: A Think-Aloud Study
Eduardo Carneiro Oliveira, Hieke Keuning, Johan Jeuring

TL;DR
This study explores how students reason about method-level code refactoring through think-aloud protocols, revealing their thought processes, common misconceptions, and the types of quality issues they identify or overlook.
Contribution
It introduces a grounded theory-based analysis of student reasoning during refactoring, identifying key reasons and common reasoning patterns.
Findings
Students reason more about quality attributes than specific problems.
Most students successfully remove code quality issues.
Certain issues like multiple responsibilities and suboptimal loops are often overlooked.
Abstract
Producing code of good quality is an essential skill in software development. Code quality is an aspect of software quality that concerns the directly observable properties of code, such as decomposition, modularization, and code flow. Code quality can often be improved by means of code refactoring -- an internal change made to code that does not alter its observable behavior. According to the ACM/IEEE-CS/AAAI Computer Science Curricula 2023, code refactoring and code quality are core topics in software engineering education. However, studies show that students often produce code with persistent quality issues. Therefore, it is important to understand what problems students experience when trying to identify and fix code quality issues. In a prior study, we identified a number of student misconceptions in method-level code refactoring. In this paper, we present the findings from a…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
