Litcius/Paper detail

Code Perfumes: Reporting Good Code to Encourage Learners

Florian Obermüller, Lena Bloch, Luisa Greifenstein, Ute Heuer, Gordon Fraser

202117 citationsDOIOpen Access PDF

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.

Topics & Concepts

ScratchComputer scienceCode (set theory)ConstructiveConstructive criticismCode smellProgramming languageCriticismBlock (permutation group theory)Software engineeringSoftwareSoftware developmentSoftware qualityProcess (computing)ArtSet (abstract data type)GeometryMathematicsLiteratureTeaching and Learning ProgrammingSoftware Engineering ResearchSoftware Testing and Debugging Techniques
Code Perfumes: Reporting Good Code to Encourage Learners | Litcius