Understanding Common Scratch Programming Idioms and Their Impact on Project Remixing

dc.contributor.authorLong, Xingyuen
dc.contributor.committeechairTilevich, Elien
dc.contributor.committeememberBalci, Osmanen
dc.contributor.committeememberNikolopoulos, Dimitrios S.en
dc.contributor.departmentComputer Scienceen
dc.date.accessioned2021-05-25T08:01:10Zen
dc.date.available2021-05-25T08:01:10Zen
dc.date.issued2021-05-24en
dc.description.abstractAs 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.en
dc.description.abstractgeneralWith 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.en
dc.description.degreeMaster of Scienceen
dc.format.mediumETDen
dc.identifier.othervt_gsexam:31399en
dc.identifier.urihttp://hdl.handle.net/10919/103475en
dc.publisherVirginia Techen
dc.rightsIn Copyrighten
dc.rights.urihttp://rightsstatements.org/vocab/InC/1.0/en
dc.subjectProgramming idiomsen
dc.subjectScratchen
dc.subjectBlock-based programmingen
dc.subjectNovice programmersen
dc.subjectProject remixingen
dc.titleUnderstanding Common Scratch Programming Idioms and Their Impact on Project Remixingen
dc.typeThesisen
thesis.degree.disciplineComputer Science and Applicationsen
thesis.degree.grantorVirginia Polytechnic Institute and State Universityen
thesis.degree.levelmastersen
thesis.degree.nameMaster of Scienceen

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Long_X_T_2021.pdf
Size:
989.33 KB
Format:
Adobe Portable Document Format

Collections