Abstract
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 different 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 suffer from code smells including large scripts and unmatched broadcast signals.
Original language | English |
---|---|
Title of host publication | ICER'16 Proceedings of the 2016 ACM Conference on International Computing Education Research |
Editors | J. Sheard, J. Tenenberg, D. Chinn, B. Dorn |
Place of Publication | New York |
Publisher | ACM |
Pages | 53-61 |
Number of pages | 9 |
ISBN (Print) | 978-1-4503-4449-4 |
DOIs | |
Publication status | Published - Sept 2016 |
Event | ICER'16 The 2016 ACM Conference on International Computing Education Research - Melbourne, Australia Duration: 8 Sept 2016 → 12 Sept 2016 |
Conference
Conference | ICER'16 The 2016 ACM Conference on International Computing Education Research |
---|---|
Country/Territory | Australia |
City | Melbourne |
Period | 8/09/16 → 12/09/16 |
Keywords
- Scratch
- block-based languages
- programming practices
- code smells
- static analysis