Moreno, J., & Robles, G. (2014, October). Automatic detection of bad programming habits in scratch: A preliminary study. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings (pp. 1-4). New York: IEEE.


Type: Practitioner

Purpose: "[T]here are reports that indicate that students learning to program in [Scratch] show certain habits that are contrary to the basic programming recommendations. In our work as instructors with high school students, we have detected these and other bad practices, such as the repetition of code and object naming, on a regular basis. This paper focuses on verifying whether these issues can generally be found in the Scratch community, by analyzing a large number of projects available on the Scratch community website" (p. 1). "To test this hypothesis, we downloaded 100 projects and analyzed them with two plug-ins we developed to automatically detect these bad practices. The plug-ins extend the functionality of the Hairball tool, a static code analyzer for Scratch projects" (p. 1).

Findings: "The results obtained show that, in general, projects in the repository also incur in the investigated malpractices" (p. 1). "Regarding object naming... Scratch users name the variables used in their projects correctly, i.e., semantically meaningful. In our opinion the reason to explain this paradox is because it is mandatory to assign a name to a variable the moment it is created, as the environment does not name it by default. However, when creating a new character a SpriteX name is assigned automatically. In our views, a change of this feature of the environment, forcing users to name new objects, might eliminate this bad practice... Regarding code repetition and the low usage Scratch users make of the possibility of creating their own blocks... Future studies should further investigate how to continue advancing in the definition of an appropriate framework for different ages, as well as to check whether users learning online and those who do it in a regulated environment show different use rates of this functionality" (p. 3).



Sample Size: 100

Notes: 100 in the sample size refers to projects downloaded and analyzed