Student Code Refactoring Misconceptions

被引:6
|
作者
Oliveira, Eduardo [1 ]
Keuning, Hieke [1 ]
Jeuring, Johan [1 ]
机构
[1] Univ Utrecht, Utrecht, Netherlands
关键词
code refactoring; misconceptions; code quality; program snapshot analysis; grounded theory; student code refactoring misconceptions; programming education;
D O I
10.1145/3587102.3588840
中图分类号
G40 [教育学];
学科分类号
040101 ; 120403 ;
摘要
Teaching students to develop code of good quality is important. Refactoring - rewriting a program into a semantically equivalent program of better quality - is a common technique to improve code quality. It is therefore relevant for students to learn about refactoring, even for the smaller programs they write as beginners. However, students make mistakes when refactoring programs. Some of these mistakes appear often, and might be caused by misconceptions they have. In this paper, we investigate common student code refactoring misconceptions. We do this by analyzing log data containing program snapshots of students working on refactoring exercises in a tutoring system. We manually inspect all transitions from a correct program state to an incorrect state. We then use grounded theory to identify and categorize misconceptions students might have when refactoring programs. As a result, this work (1) defines the concept of refactoring misconception, and (2) provides an initial list of 25 such misconceptions, together with an accompanying website with full details.
引用
收藏
页码:19 / 25
页数:7
相关论文
共 50 条
  • [31] On the Impact of Refactoring Operations on Code Quality Metrics
    Chaparro, Oscar
    Bavota, Gabriele
    Marcus, Andrian
    Di Penta, Massimiliano
    2014 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME), 2014, : 456 - 460
  • [32] Towards an Extensible Architecture for Refactoring Test Code
    Marinke, Rogerio
    Guerra, Eduardo Martins
    Silveira, Fabio Fagundes
    Azevedo, Rafael Monico
    Nascimento, Wagner
    de Almeida, Rodrigo Simoes
    Demboscki, Bruno Rodrigues
    da Silva, Tiago Silva
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS, ICCSA 2019, PT IV, 2019, 11622 : 456 - 471
  • [33] Detecting and refactoring code smells in spreadsheet formulas
    Hermans, Felienne
    Pinzger, Martin
    van Deursen, Arie
    EMPIRICAL SOFTWARE ENGINEERING, 2015, 20 (02) : 549 - 575
  • [34] FaultBuster: An Automatic Code Smell Refactoring Toolset
    Szoke, Gabor
    Nagy, Csaba
    Fulop, Lajos Jeno
    Ferenc, Rudolf
    Gyimothy, Tibor
    2015 IEEE 15TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2015, : 253 - 258
  • [35] Semantic Code Refactoring for Abstract Data Types
    Pailoor, Shankara
    Wang, Yuepeng
    Dillig, Isil
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (POPL):
  • [36] Binary refactoring: Improving code behind the scenes
    Tilevich, E
    Smaragdakis, Y
    ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, : 264 - 273
  • [37] Revisiting the Relationship Between Code Smells and Refactoring
    Yoshida, Norihiro
    Saika, Tsubasa
    Choi, Eunjong
    Ouni, Ali
    Inoue, Katsuro
    2016 IEEE 24TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC), 2016,
  • [38] Analysis of Code Refactoring Impact on Software Quality
    Kaur, Amandeep
    Kaur, Manpreet
    4TH INTERNATIONAL CONFERENCE ON ADVANCEMENTS IN ENGINEERING & TECHNOLOGY (ICAET-2016), 2016, 57
  • [39] Code Refactoring Based on MapReduce in Cloud Migration
    Zhao, Junfeng
    Wang, Wenmeng
    Yang, Hongji
    2018 IEEE INT CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, UBIQUITOUS COMPUTING & COMMUNICATIONS, BIG DATA & CLOUD COMPUTING, SOCIAL COMPUTING & NETWORKING, SUSTAINABLE COMPUTING & COMMUNICATIONS, 2018, : 1042 - 1043
  • [40] The untold story of code refactoring customizations in practice
    Oliveira, Daniel
    Assuncao, Wesley K. G.
    Garcia, Alessandro
    Bibiano, Ana Carla
    Ribeiro, Marcio
    Gheyi, Rohit
    Fonseca, Baldoino
    2023 IEEE/ACM 45TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ICSE, 2023, : 108 - 120