Bugs in Scratch programs can spoil the fun and inhibit learning success. Many common bugs are the result of recurring patterns of bad code. In this paper we present a collection of common code patterns that typically hint at bugs in Scratch programs, and the LitterBox tool which can automatically detect them. We empirically evaluate how frequently these patterns occur, and how severe their consequences usually are. While fixing bugs inevitably is part of learning, the possibility to identify the bugs automatically provides the potential to support learners. CCS CONCEPTS• Social and professional topics → Software engineering education; K-12 education; • Software and its engineering → Visual languages.
Creating programs with block-based programming languages like Sc r a t c h is easy and fun. Block-based programs can nevertheless contain bugs, in particular when learners have misconceptions about programming. Even when they do not, Sc r a t c h code is often of low quality and contains code smells, further inhibiting understanding, reuse, and fun. To address this problem, in this paper we introduce Lit t e r Bo x , a linter for Sc r a t c h programs. Given a program or its public project ID, Lit t e r Bo x checks the program against patterns of known bugs and code smells. For each issue identified, Lit t e r Bo x provides not only the location in the code, but also a helpful explanation of the underlying reason and possible misconceptions. Learners can access Lit t e r Bo x through an easy to use web interface with visual information about the errors in the block-code, while for researchers Lit t e r Bo x provides a general, open source, and extensible framework for static analysis of Sc r a t c h programs.
Creating programs with block-based programming languages like SCRATCH is easy and fun. Block-based programs can nevertheless contain bugs, in particular when learners have misconceptions about programming. Even when they do not, SCRATCH code is often of low quality and contains code smells, further inhibiting understanding, reuse, and fun. To address this problem, in this paper we introduce LITTERBOX, a linter for SCRATCH programs. Given a program or its public project ID, LITTERBOX checks the program against patterns of known bugs and code smells. For each issue identified, LITTERBOX provides not only the location in the code, but also a helpful explanation of the underlying reason and possible misconceptions. Learners can access LITTERBOX through an easy to use web interface with visual information about the errors in the block-code, while for researchers LITTERBOX provides a general, open source, and extensible framework for static analysis of SCRATCH programs.
Block-based programming languages like Scratch enable children to be creative while learning to program. Even though the blockbased 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. CCS Concepts• Social and professional topics → K-12 education; Software engineering education; • Software and its engineering → Visual languages.
Learning basic programming with Scratch can be hard for novices and tutors alike: Students may not know how to advance when solving a task, teachers may face classrooms with many raised hands at a time, and the problem is exacerbated when novices are on their own in online or virtual lessons. It is therefore desirable to generate next-step hints automatically to provide individual feedback for students who are stuck, but current approaches rely on the availability of multiple hand-crafted or hand-selected sample solutions from which to draw valid hints, and have not been adapted for Scratch. Automated testing provides an opportunity to automatically select suitable candidate solutions for hint generation, even from a pool of student solutions using different solution approaches and varying in quality. In this paper we present Catnip, the first nextstep hint generation approach for Scratch, which extends existing data-driven hint generation approaches with automated testing. Evaluation of Catnip on a dataset of student Scratch programs demonstrates that the generated hints point towards functional improvements, and the use of automated tests allows the hints to be better individualized for the chosen solution path. CCS Concepts• Social and professional topics → K-12 education; Software engineering education; • Software and its engineering → Visual languages.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.