Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3484272.3484959acmconferencesArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
research-article
Open access

The common coder’s scratch programming idioms and their impact on project remixing

Published: 17 October 2021 Publication History

Abstract

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 experience backgrounds 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.

References

[1]
2021. Example for iterating the list. https://programming-idioms.org/idiom/6/iterate-over-list-values
[2]
2021. Example for removing elements from the list. https://programming-idioms.org/idiom/136/remove-all-occurrences-of-a-value-from-a-list
[3]
2021. Forever If (). https://en.scratch-wiki.info/wiki/Forever_If_()_(block)
[4]
2021. List of Block Workarounds. https://en.scratch-wiki.info/wiki/List_of_Block_Workarounds
[5]
2021. Online programming idioms. https://programming-idioms.org/
[6]
2021. Scratch’s statistics. https://scratch.mit.edu/statistics/
[7]
Efthimia Aivaloglou and Felienne Hermans. 2016. How kids code and how we know: An exploratory study on the Scratch repository. In Proceedings of the 2016 ACM Conference on International Computing Education Research. 53–61.
[8]
Carol V Alexandru, José J Merchante, Sebastiano Panichella, Sebastian Proksch, Harald C Gall, and Gregorio Robles. 2018. On the usage of pythonic idioms. In Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. 1–11.
[9]
Miltiadis Allamanis and Charles Sutton. 2014. Mining idioms from source code. In Proceedings of the 22nd acm sigsoft international symposium on foundations of software engineering. 472–483.
[10]
Kashif Amanullah and Tim Bell. 2018. Analysing students’ scratch programs and addressing issues using elementary patterns. In 2018 IEEE Frontiers in Education Conference (FIE). 1–5.
[11]
Kashif Amanullah and Tim Bell. 2019. Analysis of progression of scratch users based on their use of elementary patterns. In 2019 14th International Conference on Computer Science & Education (ICCSE). 573–578.
[12]
Kashif Amanullah and Tim Bell. 2019. Evaluating the use of remixing in scratch projects based on repertoire, lines of code (loc), and elementary patterns. In 2019 IEEE Frontiers in Education Conference (FIE). 1–8.
[13]
Kashif Amanullah and Tim Bell. 2020. Teaching Resources for Young Programmers: the use of Patterns. In 2020 IEEE Frontiers in Education Conference (FIE). 1–9.
[14]
A. Anthropy. 2019. Make Your Own Scratch Games!. No Starch Press. isbn:9781593279363 lccn:2019001474 https://books.google.com/books?id=QVv6DwAAQBAJ
[15]
Owen Astrachan and Eugene Wallingford. 1998. Loop patterns. In Proc. Fifth Pattern Languages of Programs Conference, Allerton Park, Illinois.
[16]
J. Bergin. 1999. Pattern for selection version 4. https://csis.pace.edu/ bergin/patterns/
[17]
Michael J Clancy and Marcia C Linn. 1999. Patterns and pedagogy. ACM SIGCSE Bulletin, 31, 1 (1999), 37–42.
[18]
Deborah A. Fields, Michael Giang, and Yasmin Kafai. 2014. Programming in the Wild: Trends in Youth Computational Participation in the Online Scratch Community. In Proceedings of the 9th Workshop in Primary and Secondary Computing Education (WiPSCE ’14). Association for Computing Machinery, 2–11. isbn:978-1-4503-3250-7 https://doi.org/10.1145/2670757.2670768
[19]
G. Ford, M. Ford, and S. Ford. 2017. Hello Scratch!: Learn to Program by Making Arcade Games. Manning Publications. isbn:9781617294259 lccn:2018285004 https://books.google.com/books?id=Te4jvgAACAAJ
[20]
Christoph Frädrich, Florian Obermüller, Nina Körber, Ute Heuer, and Gordon Fraser. 2020. Common bugs in scratch programs. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education. 89–95.
[21]
Michal Gordon, Assaf Marron, and Orni Meerbaum-Salant. 2012. Spaghetti for the main course? Observations on the naturalness of scenario-based programming. In Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education. 198–203.
[22]
Paul A hner, John Sweller, and Richard E Clark. 2006. Why Minimal Guidance During Instruction Does Not Work: An Analysis of the Failure of Constructuvist, Discovery, Problem-Based, Experimental, and Inquiry-Based Teaching. Educational Psychologist, 42, 2 (2006).
[23]
Prapti Khawas, Peeratham Techapalokul, and Eli Tilevich. 2019. Unmixing remixes: The how and why of not starting projects from Scratch. In 2019 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). 169–173.
[24]
John Maloney, Mitchel Resnick, Natalie Rusk, Brian Silverman, and Evelyn Eastmond. 2010. The scratch programming language and environment. ACM Transactions on Computing Education (TOCE), 10, 4 (2010), 1–15.
[25]
M. Marji. 2014. Learn to Program with Scratch: A Visual Introduction to Programming with Games, Art, Science, and Math. No Starch Press. isbn:9781593275433 lccn:2013043492 https://books.google.com/books?id=sYvlAwAAQBAJ
[26]
Howard A Peell. 1987. An APL idiom inventory. In Proceedings of the international conference on APL: APL in transition. 362–368.
[27]
Alan J Perlis and Spencer Rugaber. 1979. Programming with idioms in APL. ACM SIGAPL APL Quote Quad, 9, 4-P1 (1979), 232–235.
[28]
Michael Smit, Barry Gergel, and H James Hoover. 2011. Code convention adherence in evolving software. In 2011 27th IEEE International Conference on Software Maintenance (ICSM). 504–507.
[29]
A. Sweigart. 2021. Scratch 3 Programming Playground: Learn to Program by Making Cool Games. No Starch Press. isbn:9781718500228 https://books.google.com/books?id=L967DwAAQBAJ
[30]
Peeratham Techapalokul and Eli Tilevich. 2017. Understanding recurring quality problems and their impact on code sharing in block-based software. In 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). 43–51.
[31]
E.A. Vlieg. 2016. Scratch by Example: Programming for All Ages. Apress. isbn:9781484219461 https://books.google.com/books?id=kxoPDQAAQBAJ
[32]
David Weintrop and Uri Wilensky. 2015. To block or not to block, that is the question: students’ perceptions of blocks-based programming. In Proceedings of the 14th international conference on interaction design and children. 199–208.

Cited By

View all
  • (2024)Gender Differences in Story, Game and Visual Adventures in HedyProceedings of the 2024 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3689493.3689983(1-11)Online publication date: 17-Oct-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLASH-E 2021: Proceedings of the 2021 ACM SIGPLAN International Symposium on SPLASH-E
October 2021
96 pages
ISBN:9781450390897
DOI:10.1145/3484272
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 October 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Block-based programming
  2. Novice programmers
  3. Programming idioms
  4. Project remixing
  5. Scratch

Qualifiers

  • Research-article

Funding Sources

Conference

SPLASH '21
Sponsor:
SPLASH '21: Software for Humanity
October 20, 2021
IL, Chicago, USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)86
  • Downloads (Last 6 weeks)16
Reflects downloads up to 27 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Gender Differences in Story, Game and Visual Adventures in HedyProceedings of the 2024 ACM SIGPLAN International Symposium on SPLASH-E10.1145/3689493.3689983(1-11)Online publication date: 17-Oct-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media