Teaching Code Refactoring Using LLMs

2508.09332v1 cs.SE, cs.LG 2025-08-15
Авторы:

Anshul Khairnar, Aarya Rajoju, Edward F. Gehringer

Резюме на русском

------------------------------------------------ ## Контекст Код с высоким качеством является ключевым фактором успешного программного проекта. Одн из наиболее важных задач в области обслуживания кода — **refactoring**. Это процесс улучшения структуры кода без изменения его внешних функциональных возможностей. Однако refactoring трудно научить студентов, особенно когда речь идет о сложных реальных кодовых базах. Обычно в курсах используются методы, такие как коды ревью и статический анализ, но они предоставляют ограниченный и непоследовательный фидбэк. Наши дней много Large Language Models (LLMs), способных обрабатывать текст на высоком уровне. Мы предлагаем интегрировать LLM-помощь в процесс обучения refactoring. Такие модели могут предоставить более контекстуальную и реального времени помощь студентам. Мы хотим показать, что это подход может помочь студентам лучше понять refactoring и его важность для поддержания качества кода в реальной жизни. ------------------------------------------------ ## Метод Этот подход реализуется в рамках курса программирования, где студенты работают над реальным проектом с открытым исходным кодом. Мы используем LLM для анализа кода и поиска "code smells" — знаковых признаков неэффективной или неподдерживаемой архитектуры. LLM предлагает студентам улучшенные версии кода с помощью структурированных подсказок. Мы структурируем задачи таким образом, чтобы студенты не только исправляли код, но и понимали причины таких изменений. Эта процедура помогает студентам усвоить теоретические принципы refactoring на практических примерах. ------------------------------------------------ ## Результаты Мы провели эксперимент, в котором студенты в ходе курса работали над задачами refactoring, получая помощь от LLM. Мы сравнивали их результаты с теми, когда студенты работали без таковой помощи. Результаты показали, что студенты, получившие помощь от LLM, были более уверенными в своих действиях и смогли выполнить задачи refactoring более эффективно. Мы также выявили что LLM могут более точно определять "code smells" и предлагать более эффективные решения. ------------------------------------------------ ## Значимость Наш подход имеет много областей применения. Он может использоваться в обучении кода, создании инструментов для код ревью, а также в нейронных сетях для анализа и улучшения кода. Преимущества LLM-подхода включают в себя реакцию в реальном времени, контекстуальную помощь и объективность в оценках. Это может дополнительно повысить качество обучения, обеспечить понимание refactoring и привлечь студентов к лучшим практикам в программировании. ------------------------------------------------ ## Выводы Наши эксперименты показали, что LLM могут быть эффективным инструментом для обучения refactoring. Они могут помочь студентам понять теоретические подходы и применить их на практике. Будущи

Abstract

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.

Ссылки и действия