Automating Source Code Refactoring in the Classroom

Eman Abdullah Alomar, Mohamed Wiem Mkaouer, Ali Ouni

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

2 Scopus citations

Abstract

Refactoring is the practice of improving software quality without altering its external behavior. Developers intuitively refactor their code for multiple purposes, such as improving program comprehension, reducing code complexity, dealing with technical debt, and removing code smells. However, no prior studies have exposed the students to an experience of the process of antipatterns detection and refactoring correction, and provided students with toolset to practice it. To understand and increase the awareness of refactoring concepts, in this paper, we aim to reflect on our experience with teaching refactoring and how it helps students become more aware of bad programming practices and the importance of correcting them via refactoring. This paper discusses the results of an experiment in the classroom that involved carrying out various refactoring activities for the purpose of removing antipatterns using JDeodorant, an IDE plugin that supports antipatterns detection and refactoring. The results of the quantitative and qualitative analysis with 171 students show that students tend to appreciate the idea of learning refactoring and are satisfied with various aspects of the JDeodorant plugin's operation. Through this experiment, refactoring can turn into a vital part of the computing educational plan. We envision our findings enabling educators to support students with refactoring tools tuned towards safer and trustworthy refactoring.

Original languageEnglish
Title of host publicationSIGCSE 2024 - Proceedings of the 55th ACM Technical Symposium on Computer Science Education
Pages60-66
Number of pages7
ISBN (Electronic)9798400704239
DOIs
StatePublished - 7 Mar 2024
Event55th ACM Technical Symposium on Computer Science Education, SIGCSE 2024 - Portland, United States
Duration: 20 Mar 202423 Mar 2024

Publication series

NameSIGCSE 2024 - Proceedings of the 55th ACM Technical Symposium on Computer Science Education
Volume1

Conference

Conference55th ACM Technical Symposium on Computer Science Education, SIGCSE 2024
Country/TerritoryUnited States
CityPortland
Period20/03/2423/03/24

Keywords

  • antipattern
  • education
  • quality
  • Refactoring
  • software engineering

Fingerprint

Dive into the research topics of 'Automating Source Code Refactoring in the Classroom'. Together they form a unique fingerprint.

Cite this