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 条
  • [41] Android code smells: From introduction to refactoring
    Habchi, Sarra
    Moha, Naouel
    Rouvoy, Romain
    JOURNAL OF SYSTEMS AND SOFTWARE, 2021, 177
  • [42] Supporting requirements to code traceability through refactoring
    Anas Mahmoud
    Nan Niu
    Requirements Engineering, 2014, 19 : 309 - 329
  • [43] Refactoring support based on code clone analysis
    Higo, Y
    Kamiya, T
    Kusumoto, S
    Inoue, K
    PRODUCT FOCUSED SOFTWARE PROCESS IMPROVEMENT, 2004, 3009 : 220 - 233
  • [44] Refactoring - Improving coupling and cohesion of existing code
    Du Bois, B
    Demeyer, S
    Verelst, J
    11TH WORKING CONFERENCE ON REVERSE ENGINEERING, PROCEEDINGS, 2004, : 144 - 151
  • [45] Refactoring OpenMP Code Based on MapReduce Model
    Zhao, Junfeng
    Zhang, Minjia
    2018 IEEE INT CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, UBIQUITOUS COMPUTING & COMMUNICATIONS, BIG DATA & CLOUD COMPUTING, SOCIAL COMPUTING & NETWORKING, SUSTAINABLE COMPUTING & COMMUNICATIONS, 2018, : 1040 - 1041
  • [46] Refactoring Operations Grounded in Manual Code Changes
    Eilertsen, Anna Maria
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2020), 2020, : 182 - 185
  • [47] Software Testing and Code Refactoring: A Survey with Practitioners
    Lima, Danilo Leandro
    Santos, Ronnie de Souza
    Garcia, Guilherme Pires
    da Silva, Sildemir S.
    Franca, Cesar
    Capretz, Luiz Fernando
    2023 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION, ICSME, 2023, : 500 - 507
  • [48] Automated refactoring of object oriented code into aspects
    Binkley, D
    Ceccato, M
    Harman, M
    Ricca, F
    Tonella, P
    ICSM 2005: PROCEEDINGS OF THE 21ST IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2005, : 27 - 36
  • [49] Semantic Code Refactoring for Abstract Data Types
    Pailoor, Shankara
    Wang, Yuepeng
    Dillig, Işll
    Proceedings of the ACM on Programming Languages, 8
  • [50] Detecting and refactoring code smells in spreadsheet formulas
    Felienne Hermans
    Martin Pinzger
    Arie van Deursen
    Empirical Software Engineering, 2015, 20 : 549 - 575