Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3481312.3481346acmotherconferencesArticle/Chapter ViewAbstractPublication PageswipsceConference Proceedingsconference-collections
research-article

Code Perfumes: Reporting Good Code to Encourage Learners

Published: 19 October 2021 Publication History

Abstract

Block-based programming languages like enable children to be creative while learning to program. Even though the block-based approach simplifies the creation of programs, learning to program can nevertheless be challenging. Automated tools such as linters therefore support learners by providing feedback about potential bugs or code smells in their programs. Even when this feedback is elaborate and constructive, it still represents purely negative criticism and by construction ignores what learners have done correctly in their programs. In this paper we introduce an orthogonal approach to linting: We complement the criticism produced by a linter with positive feedback. We introduce the concept of code perfumes as the counterpart to code smells, indicating the correct application of programming practices considered to be good. By analysing not only what learners did wrong but also what they did right we hope to encourage learners, to provide teachers and students a better understanding of learners’ progress, and to support the adoption of automated feedback tools. Using a catalogue of 25 code perfumes for, we empirically demonstrate that these represent frequent practices in, and we find that better programs indeed contain more code perfumes.

References

[1]
Kashif Amanullah and Tim Bell. 2018. Analysing students’ scratch programs and addressing issues using elementary patterns. In 2018 IEEE Frontiers in Education Conference (FIE). IEEE, 1–5.
[2]
Kashif Amanullah and Tim Bell. 2020. Teaching Resources for Young Programmers: the use of Patterns. In 2020 IEEE Frontiers in Education Conference (FIE). IEEE, 1–9.
[3]
Bryce Boe, Charlotte Hill, Michelle Len, Greg Dreschler, Phillip Conrad, and Diana Franklin. 2013. Hairball: Lint-inspired static analysis of scratch projects. SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education, 215–220. https://doi.org/10.1145/2445196.2445265
[4]
Edward L Deci, Richard Koestner, and Richard M Ryan. 1999. A meta-analytic review of experiments examining the effects of extrinsic rewards on intrinsic motivation.Psychological bulletin 125, 6 (1999), 627.
[5]
Samantha DePasque and Elizabeth Tricomi. 2015. Effects of intrinsic motivation on feedback processing during learning. NeuroImage 119(2015), 175–186.
[6]
Ayelet Fishbach, Tal Eyal, and Stacey R Finkelstein. 2010. How positive and negative feedback motivate goal pursuit. Social and Personality Psychology Compass 4, 8 (2010), 517–530.
[7]
Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA.
[8]
Gordon Fraser, Ute Heuer, Nina Körber, Florian Obermüller, and Ewald Wasmeier. 2021. LitterBox: A Linter for Scratch Programs. arXiv preprint arXiv:2102.07440(2021).
[9]
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 (Trondheim, Norway) (ITiCSE ’20). 89–95. https://doi.org/10.1145/3341525.3387389
[10]
John Hattie. 2009. Visible Learning: A Synthesis of Over 800 Meta-Analyses Relating to Achievement. https://doi.org/10.4324/9780203887332
[11]
John AC Hattie and Gregory CR Yates. 2014. Using feedback to promote learning. Applying science of learning in education: Infusing psychological science into the curriculum (2014), 45–58.
[12]
Felienne Hermans and Efthimia Aivaloglou. 2016. Do code smells hamper novice programming? A controlled experiment on Scratch programs. In 2016 IEEE 24th International Conference on Program Comprehension (ICPC). 1–10. https://doi.org/10.1109/ICPC.2016.7503706
[13]
Felienne Hermans, Kathryn T. Stolee, and David Hoepelman. 2016. Smells in Block-Based Programming Languages. In 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) (Cambridge, United Kingdom, 2016-09). IEEE, 68–72. https://doi.org/10.1109/VLHCC.2016.7739666
[14]
David Hovemeyer and William Pugh. 2004. Finding Bugs is Easy. SIGPLAN Not. 39, 12 (Dec. 2004), 92–106. https://doi.org/10.1145/1052883.1052895
[15]
David E Johnson. 2016. ITCH: Individual Testing of Computer Homework for Scratch Assignments. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education. ACM, 223–227.
[16]
P. Louridas. 2006. Static code analysis. IEEE Software 23, 4 (2006), 58–61. https://doi.org/10.1109/MS.2006.114
[17]
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 (11 2010), 16. https://doi.org/10.1145/1868358.1868363
[18]
Monica M. McGill and Adrienne Decker. 2020. Tools, Languages, and Environments Used in Primary and Secondary Computing Education. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education (Trondheim, Norway) (ITiCSE ’20). Association for Computing Machinery, New York, NY, USA, 103–109. https://doi.org/10.1145/3341525.3387365
[19]
Orni Meerbaum-Salant, Michal Armoni, and Mordechai Ben-Ari. 2011. Habits of Programming in Scratch. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education (Darmstadt, Germany) (ITiCSE ’11). Association for Computing Machinery, New York, NY, USA, 168–172. https://doi.org/10.1145/1999747.1999796
[20]
Tilman Michaeli and Ralf Romeike. 2019. Current Status and Perspectives of Debugging in the K12 Classroom: A Qualitative Study. In 2019 IEEE Global Engineering Education Conference (EDUCON). IEEE, 1030–1038.
[21]
Maria Montessori. 1959. The absorbent mind. Lulu. com.
[22]
Jesús Moreno-León and Gregorio Robles. 2014. Automatic detection of bad programming habits in scratch: A preliminary study. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings. 1–4. https://doi.org/10.1109/FIE.2014.7044055
[23]
Jesús Moreno-León, Gregorio Robles, and Marcos Román-González. 2015. Dr. Scratch: Automatic Analysis of Scratch Projects to Assess and Foster Computational Thinking. RED-Revista de Educación a Distancia (09 2015).
[24]
Susanne Narciss. 2013. Designing and evaluating tutoring feedback strategies for digital learning. Digital Education Review23 (2013), 7–26.
[25]
J. Novak, A. Krajnc, and R. Žontar. 2010. Taxonomy of static code analysis tools. In The 33rd International Convention MIPRO. 418–422.
[26]
Richard M Ryan and Edward L Deci. 2000. Intrinsic and extrinsic motivations: Classic definitions and new directions. Contemporary educational psychology 25, 1 (2000), 54–67.
[27]
Richard M Ryan and Edward L Deci. 2000. When rewards compete with nature: The undermining of intrinsic motivation and self-regulation. In Intrinsic and extrinsic motivation. Elsevier, 13–54.
[28]
Linda Seiter and Brendan Foreman. 2013. Modeling the learning progressions of computational thinking of primary grade students. In Proceedings of the ninth annual international ACM conference on International computing education research. 59–66.
[29]
Sue Sentance and Andrew Csizmadia. 2017. Computing in the curriculum: Challenges and strategies from a teacher’s perspective. Education and Information Technologies 22, 2 (2017), 469–495.
[30]
Andreas Stahlbauer, Christoph Frädrich, and Gordon Fraser. 2020. Verified from Scratch: Program Analysis for Learners’ Programs. In In Proceedings of the International Conference on Automated Software Engineering (ASE). IEEE.
[31]
Andreas Stahlbauer, Marvin Kreis, and Gordon Fraser. 2019. Testing scratch programs automatically. In Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 165–175.
[32]
Mike Talbot, Katharina Geldreich, Julia Sommer, and Peter Hubwieser. 2020. Re-use of programming patterns or problem solving? representation of scratch programs by TGraphs to support static code analysis. In Proceedings of the 15th Workshop on Primary and Secondary Computing Education. 1–10.
[33]
Peeratham Techapalokul and Eli Tilevich. 2017. Quality Hound — An online code smell analyzer for scratch programs. In 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC). 337–338. https://doi.org/10.1109/VLHCC.2017.8103498
[34]
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) (Raleigh, NC, USA, 2017-10). IEEE, 43–51. https://doi.org/10.1109/VLHCC.2017.8103449
[35]
Linda Werner, Jill Denner, Shannon Campe, and David M Torres. 2020. Computational sophistication of games programmed by children: a model for its measurement. ACM Transactions on Computing Education (TOCE) 20, 2 (2020), 1–23.
[36]
Benedikt Wisniewski, Klaus Zierer, and John Hattie. 2020. The power of feedback revisited: A meta-analysis of educational feedback research. Frontiers in Psychology 10 (2020), 3087.
[37]
Aman Yadav, Sarah Gretter, Susanne Hambrusch, and Phil Sands. 2016. Expanding computer science education in schools: understanding teacher experiences and challenges. Computer Science Education 26, 4 (2016), 235–254.

Cited By

View all
  • (2024)Software sustainability of global impact modelsGeoscientific Model Development10.5194/gmd-17-8593-202417:23(8593-8611)Online publication date: 5-Dec-2024
  • (2024)Do Scratchers Fix Their Bugs? Detecting Fixes of Scratch Static Analysis WarningsProceedings of the 19th WiPSCE Conference on Primary and Secondary Computing Education Research10.1145/3677619.3678108(1-4)Online publication date: 16-Sep-2024
  • (2024)Acknowledging Good Java Code with Code Perfumes2024 36th International Conference on Software Engineering Education and Training (CSEE&T)10.1109/CSEET62301.2024.10662995(1-10)Online publication date: 29-Jul-2024
  • Show More Cited By

Index Terms

  1. Code Perfumes: Reporting Good Code to Encourage Learners
          Index terms have been assigned to the content through auto-classification.

          Recommendations

          Comments

          Information & Contributors

          Information

          Published In

          cover image ACM Other conferences
          WiPSCE '21: Proceedings of the 16th Workshop in Primary and Secondary Computing Education
          October 2021
          119 pages
          ISBN:9781450385718
          DOI:10.1145/3481312
          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]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          Published: 19 October 2021

          Permissions

          Request permissions for this article.

          Check for updates

          Author Tags

          1. Block-based programming
          2. Code quality
          3. Linting
          4. Scratch

          Qualifiers

          • Research-article
          • Research
          • Refereed limited

          Funding Sources

          • BMBF
          • DFG

          Conference

          WiPSCE '21

          Acceptance Rates

          Overall Acceptance Rate 104 of 279 submissions, 37%

          Contributors

          Other Metrics

          Bibliometrics & Citations

          Bibliometrics

          Article Metrics

          • Downloads (Last 12 months)61
          • Downloads (Last 6 weeks)8
          Reflects downloads up to 11 Feb 2025

          Other Metrics

          Citations

          Cited By

          View all
          • (2024)Software sustainability of global impact modelsGeoscientific Model Development10.5194/gmd-17-8593-202417:23(8593-8611)Online publication date: 5-Dec-2024
          • (2024)Do Scratchers Fix Their Bugs? Detecting Fixes of Scratch Static Analysis WarningsProceedings of the 19th WiPSCE Conference on Primary and Secondary Computing Education Research10.1145/3677619.3678108(1-4)Online publication date: 16-Sep-2024
          • (2024)Acknowledging Good Java Code with Code Perfumes2024 36th International Conference on Software Engineering Education and Training (CSEE&T)10.1109/CSEET62301.2024.10662995(1-10)Online publication date: 29-Jul-2024
          • (2024)Code Smells for Assessing and Improving Students’ Coding Skills and PracticesProceedings of the Third International Conference on Innovations in Computing Research (ICR’24)10.1007/978-3-031-65522-7_21(225-236)Online publication date: 1-Aug-2024
          • (2023)Impact of Hint Content on Performance and Learning: A Study with Primary School Children in a Scratch CourseProceedings of the 18th WiPSCE Conference on Primary and Secondary Computing Education Research10.1145/3605468.3605498(1-10)Online publication date: 27-Sep-2023
          • (2023)Automated test generation for Scratch programsEmpirical Software Engineering10.1007/s10664-022-10255-x28:3Online publication date: 13-May-2023

          View Options

          Login options

          View options

          PDF

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format.

          HTML Format

          Figures

          Tables

          Media

          Share

          Share

          Share this Publication link

          Share on social media