Return to search

Understanding Common Scratch Programming Idioms and Their Impact on Project Remixing

As Scratch has become one of the most popular educational programming languages, understanding its common programming idioms can benefit both computing educators and learners. This understanding can fine-tune the curricular development to help learners master the fundamentals of writing idiomatic code in their programming pursuits. Unfortunately, the research community's understanding of what constitutes idiomatic Scratch code has been limited. To help bridge this knowledge gap, we systematically identified idioms as based on canonical source code, presented in widely available educational materials.

We implemented a tool that automatically detects these idioms to assess their prevalence within a large dataset of over 70K Scratch projects in different demographic and project categories. Since communal learning and the practice of remixing are one of the cornerstones of the Scratch programming community, we studied the relationship between common programming idioms and remixes.

Having analyzed the original projects and their remixes, we observed that different idioms may associate with dissimilar types of code changes. Code changes in remixes are desirable, as they require a meaningful programming effort that spurs the learning process. The ability to substantially change a project in its remixes hinges on the project's code being easy to understand and modify. Our findings suggest that the presence of certain common idioms can indeed positively impact the degree of code changes in remixes. Our findings can help form a foundation of what comprises common Scratch programming idioms, thus benefiting both introductory computing education and Scratch programming tools. / Master of Science / With over 68 million users and growing, Scratch has become one of the most popular programming languages for introductory computing learners. As with learning any programming language, understanding common programming idioms used in the language's application domain is important for both computing educators and learners. Educators need this understanding in order to fine-tune their curricular development, while learners can leverage this knowledge to effectively master the fundamentals by writing idiomatic code. Unfortunately, our understanding of what constitutes idiomatic Scratch code thus far has been limited. To address this knowledge gap, we systematically identified idioms based on source code with good code quality, as presented in widely available educational materials.

We implemented a tool that automatically detects these idioms to assess their prevalence within a large, diverse dataset of over 70K Scratch projects. Since communal learning and the practice of remixing are one of the cornerstones of the Scratch programming community, we studied the relationship between common programming idioms and remixes. Having analyzed the original projects and their remixes, we found that different idioms may associate with dissimilar types of code changes. The ability to change a project in its remixes hinges on the project's code being easy to understand and modify. Our findings suggest that the presence of certain common idioms can positively impact the degree of code changes in remixes. Our findings can help form a foundation of what comprises common Scratch programming idioms, thus benefiting both introductory computing education and Scratch programming tools.

Identiferoai:union.ndltd.org:VTETD/oai:vtechworks.lib.vt.edu:10919/103475
Date24 May 2021
CreatorsLong, Xingyu
ContributorsComputer Science, Tilevich, Eli, Balci, Osman, Nikolopoulos, Dimitrios S.
PublisherVirginia Tech
Source SetsVirginia Tech Theses and Dissertation
Detected LanguageEnglish
TypeThesis
FormatETD, application/pdf
RightsIn Copyright, http://rightsstatements.org/vocab/InC/1.0/

Page generated in 0.0024 seconds