TY - GEN
T1 - Do code smells hamper novice programming? A controlled experiment on Scratch programs
AU - Hermans, Felienne
AU - Aivaloglou, Efthimia
PY - 2016/7/5
Y1 - 2016/7/5
N2 - Recently, block-based programming languages like Alice, Scratch and Blockly have become popular tools for programming education. There is substantial research showing that block-based languages are suitable for early programming education. But can block-based programs be smelly too? And does that matter to learners? In this paper we explore the code smells metaphor in the context of block-based programming language Scratch. We conduct a controlled experiment with 61 novice Scratch programmers, in which we divided the novices into three groups. One third receive a non-smelly program, while the other groups receive a program suffering from the Duplication or the Long Method smell respectively. All subjects then perform the same comprehension tasks on their program, after which we measure their time and correctness. The results of the experiment show that code smell indeed influence performance: subjects working on the program exhibiting code smells perform significantly worse, but the smells did not affect the time subjects needed. Investigating different types of tasks in more detail, we find that Long Method mainly decreases system understanding, while Duplication decreases the ease with which subjects modify Scratch programs.
AB - Recently, block-based programming languages like Alice, Scratch and Blockly have become popular tools for programming education. There is substantial research showing that block-based languages are suitable for early programming education. But can block-based programs be smelly too? And does that matter to learners? In this paper we explore the code smells metaphor in the context of block-based programming language Scratch. We conduct a controlled experiment with 61 novice Scratch programmers, in which we divided the novices into three groups. One third receive a non-smelly program, while the other groups receive a program suffering from the Duplication or the Long Method smell respectively. All subjects then perform the same comprehension tasks on their program, after which we measure their time and correctness. The results of the experiment show that code smell indeed influence performance: subjects working on the program exhibiting code smells perform significantly worse, but the smells did not affect the time subjects needed. Investigating different types of tasks in more detail, we find that Long Method mainly decreases system understanding, while Duplication decreases the ease with which subjects modify Scratch programs.
UR - http://www.scopus.com/inward/record.url?scp=84979782497&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84979782497&partnerID=8YFLogxK
U2 - 10.1109/ICPC.2016.7503706
DO - 10.1109/ICPC.2016.7503706
M3 - Conference contribution
AN - SCOPUS:84979782497
T3 - IEEE International Conference on Program Comprehension
BT - Proceedings of the 24th IEEE International Conference on Program Comprehension, ICPC 2016 - co-located with ICSE 2016
PB - IEEE Computer Society
T2 - 24th IEEE International Conference on Program Comprehension, ICPC 2016
Y2 - 16 May 2016 through 17 May 2016
ER -