Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code

Refactoring code is an important skill to become a competent software engineer, however it is usually never explicitly taught in coding intensive courses. Even though engineers in academia and industry agree refactoring is important, most novice programmers are unaware of the code smells they should...

Full description

Bibliographic Details
Main Author: Leyva, Mario
Other Authors: Miller, Robert C.
Format: Thesis
Published: Massachusetts Institute of Technology 2023
Online Access:https://hdl.handle.net/1721.1/151544
_version_ 1811077505015087104
author Leyva, Mario
author2 Miller, Robert C.
author_facet Miller, Robert C.
Leyva, Mario
author_sort Leyva, Mario
collection MIT
description Refactoring code is an important skill to become a competent software engineer, however it is usually never explicitly taught in coding intensive courses. Even though engineers in academia and industry agree refactoring is important, most novice programmers are unaware of the code smells they should avoid when writing code. This thesis discusses a novel tutoring system to assist novice programmers with refactoring. This tool provides refactoring exercises to students in an introductory programming class. The tutor exposes students to various types of code smells and has them deliberately practice how to refactor. The tutor infrastructure has proven to be robust to several refactoring exercises. Based on a user study involving the students and the staff members from 6.1010: Fundamentals of Programming, the tutor infrastructure has shown to be robust to bugs and staff feedback. The tutor shows promise, but further studies with more students are necessary to evaluate its effectiveness on teaching student refactoring.
first_indexed 2024-09-23T10:43:46Z
format Thesis
id mit-1721.1/151544
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T10:43:46Z
publishDate 2023
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/1515442023-08-01T04:02:19Z Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code Leyva, Mario Miller, Robert C. Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science Refactoring code is an important skill to become a competent software engineer, however it is usually never explicitly taught in coding intensive courses. Even though engineers in academia and industry agree refactoring is important, most novice programmers are unaware of the code smells they should avoid when writing code. This thesis discusses a novel tutoring system to assist novice programmers with refactoring. This tool provides refactoring exercises to students in an introductory programming class. The tutor exposes students to various types of code smells and has them deliberately practice how to refactor. The tutor infrastructure has proven to be robust to several refactoring exercises. Based on a user study involving the students and the staff members from 6.1010: Fundamentals of Programming, the tutor infrastructure has shown to be robust to bugs and staff feedback. The tutor shows promise, but further studies with more students are necessary to evaluate its effectiveness on teaching student refactoring. M.Eng. 2023-07-31T19:47:32Z 2023-07-31T19:47:32Z 2023-06 2023-06-06T16:35:28.183Z Thesis https://hdl.handle.net/1721.1/151544 In Copyright - Educational Use Permitted Copyright retained by author(s) https://rightsstatements.org/page/InC-EDU/1.0/ application/pdf Massachusetts Institute of Technology
spellingShingle Leyva, Mario
Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code
title Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code
title_full Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code
title_fullStr Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code
title_full_unstemmed Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code
title_short Refactoring Tutor: An IDE Integrated Tool for Practicing Key Techniques to Refactor Code
title_sort refactoring tutor an ide integrated tool for practicing key techniques to refactor code
url https://hdl.handle.net/1721.1/151544
work_keys_str_mv AT leyvamario refactoringtutoranideintegratedtoolforpracticingkeytechniquestorefactorcode