Teaching Code Refactoring Using LLMs
This addresses the problem of teaching code refactoring effectively for software engineering students, though it appears incremental as it applies existing LLM technology to an educational context.
The paper tackles the challenge of teaching code refactoring in software engineering courses by integrating LLMs to provide real-time, context-aware feedback, with findings suggesting it bridges theoretical and practical learning for a deeper understanding of maintainability principles.
This Innovative Practice full paper explores how Large Language Models (LLMs) can enhance the teaching of code refactoring in software engineering courses through real-time, context-aware feedback. Refactoring improves code quality but is difficult to teach, especially with complex, real-world codebases. Traditional methods like code reviews and static analysis tools offer limited, inconsistent feedback. Our approach integrates LLM-assisted refactoring into a course project using structured prompts to help students identify and address code smells such as long methods and low cohesion. Implemented in Spring 2025 in a long-lived OSS project, the intervention is evaluated through student feedback and planned analysis of code quality improvements. Findings suggest that LLMs can bridge theoretical and practical learning, supporting a deeper understanding of maintainability and refactoring principles.