Search papers, labs, and topics across Lattice.
This paper introduces CDDRefactorER, an automated code refactoring approach designed to improve code comprehension for novice programmers by reducing cognitive load. CDDRefactorER uses Cognitive-Driven Development principles to constrain code transformations, focusing on reducing control-flow complexity while maintaining behavior and structural similarity. Evaluations on MBPP and APPS datasets, along with a human-subject study, demonstrate that CDDRefactorER significantly reduces refactoring failures and improves novice code comprehension, increasing function identification and structural readability.
Novice programmers can boost code comprehension by 31% thanks to automated refactoring that minimizes cognitive load.
Novice programmers often struggle to comprehend code due to vague naming, deep nesting, and poor structural organization. While explanations may offer partial support, they typically do not restructure the code itself. We propose code refactoring as cognitive scaffolding, where cognitively guided refactoring automatically restructures code to improve clarity. We operationalize this in CDDRefactorER, an automated approach grounded in Cognitive-Driven Development that constrains transformations to reduce control-flow complexity while preserving behavior and structural similarity. We evaluate CDDRefactorER using two benchmark datasets (MBPP and APPS) against two models (gpt-5-nano and kimi-k2), and a controlled human-subject study with novice programmers. Across datasets and models, CDDRefactorER reduces refactoring failures by 54-71% and substantially lowers the likelihood of increased Cyclomatic and Cognitive complexity during refactoring, compared to unconstrained prompting. Results from the human study show consistent improvements in novice code comprehension, with function identification increasing by 31.3% and structural readability by 22.0%. The findings suggest that cognitively guided refactoring offers a practical and effective mechanism for enhancing novice code comprehension.