Code Perfumes: Reporting Good Code to Encourage Learners

08/13/2021
by   Florian Obermüller, et al.
0

Block-based programming languages like Scratch 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 Scratch, we empirically demonstrate that these represent frequent practices in Scratch, and we find that better programs indeed contain more code perfumes.

READ FULL TEXT

page 2

page 4

research
02/15/2021

LitterBox: A Linter for Scratch Programs

Creating programs with block-based programming languages like Scratch is...
research
03/22/2022

How Interest-Driven Content Creation Shapes Opportunities for Informal Learning in Scratch: A Case Study on Novices' Use of Data Structures

Through a mixed-method analysis of data from Scratch, we examine how nov...
research
08/29/2022

Common Patterns in Block-Based Robot Programs

Programmable robots are engaging and fun to play with, interact with the...
research
06/24/2023

Exploring Programming Task Creation of Primary School Teachers in Training

Introducing computational thinking in primary school curricula implies t...
research
08/10/2021

How Learners Sketch Data Stories

Learning data storytelling involves a complex web of skills. Professiona...
research
02/15/2023

Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming

AI code generators like OpenAI Codex have the potential to assist novice...
research
02/11/2023

Scaffolding Progress: How Structured Editors Shape Novice Errors When Transitioning from Blocks to Text

Transitioning from block-based programming to text-based programming env...

Please sign up or login with your details

Forgot password? Click here to reset