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 languageEnglish
Title of host publicationICER'16 Proceedings of the 2016 ACM Conference on International Computing Education Research
EditorsJ. Sheard, J. Tenenberg, D. Chinn, B. Dorn
Place of PublicationNew York
PublisherAssociation for Computing Machinery (ACM)
Number of pages9
ISBN (Print)978-1-4503-4449-4
StatePublished - Sep 2016
EventICER'16 The 2016 ACM Conference on International Computing Education Research - Melbourne, Australia


ConferenceICER'16 The 2016 ACM Conference on International Computing Education Research

    Research areas

  • Scratch, block-based languages, programming practices, code smells, static analysis

ID: 14960638