TY - GEN
T1 - How kids code and how we know
T2 - 12th Annual International Computing Education Research Conference, ICER 2016
AU - Aivaloglou, Efthimia
AU - Hermans, Felienne
PY - 2016/8/25
Y1 - 2016/8/25
N2 - Block-based programming languages like Scratch, Alice and Blockly are becoming increasingly common as introductory languages in programming education. There is substantial research showing that these visual programming environments are suitable for teaching programming concepts. But, what do people do when they use Scratch? In this paper we explore the characteristics of Scratch programs. To this end we have scraped the Scratch public repository and retrieved 250,000 projects. We present an analysis of these projects in three di erent dimensions. Initially, we look at the types of blocks used and the size of the projects. We then investigate complexity, used abstractions and programming concepts. Finally we detect code smells such as large scripts, dead code and duplicated code blocks. Our results show that 1) most Scratch programs are small, however Scratch programs consisting of over 100 sprites exist, 2) programming abstraction concepts like procedures are not commonly used and 3) Scratch programs do su er from code smells including large scripts and unmatched broadcast signals.
AB - Block-based programming languages like Scratch, Alice and Blockly are becoming increasingly common as introductory languages in programming education. There is substantial research showing that these visual programming environments are suitable for teaching programming concepts. But, what do people do when they use Scratch? In this paper we explore the characteristics of Scratch programs. To this end we have scraped the Scratch public repository and retrieved 250,000 projects. We present an analysis of these projects in three di erent dimensions. Initially, we look at the types of blocks used and the size of the projects. We then investigate complexity, used abstractions and programming concepts. Finally we detect code smells such as large scripts, dead code and duplicated code blocks. Our results show that 1) most Scratch programs are small, however Scratch programs consisting of over 100 sprites exist, 2) programming abstraction concepts like procedures are not commonly used and 3) Scratch programs do su er from code smells including large scripts and unmatched broadcast signals.
KW - Block-based languages
KW - Code smells
KW - Programming practices
KW - Scratch
KW - Static analysis
UR - http://www.scopus.com/inward/record.url?scp=85000613380&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85000613380&partnerID=8YFLogxK
U2 - 10.1145/2960310.2960325
DO - 10.1145/2960310.2960325
M3 - Conference contribution
AN - SCOPUS:85000613380
T3 - ICER 2016 - Proceedings of the 2016 ACM Conference on International Computing Education Research
SP - 53
EP - 61
BT - ICER 2016 - Proceedings of the 2016 ACM Conference on International Computing Education Research
PB - Association for Computing Machinery, Inc
Y2 - 8 September 2016 through 12 September 2016
ER -