Many novice programmers are able to write code that solves a given problem, but they struggled to write code that adheres to basic principles of good application design. Their programs will contain several design smells which indicate a lack of understanding of how to structure code. This applies in particular to degrees in which programming, and by extension software design, is only a small part of the curriculum.This paper defines design smells for Processing, a language for new media and visual arts that is based on Java. This includes language specific smells that arise from the common structure that all Processing programs share. The paper also describes how to detect those smells automatically with static analysis. This tool is meant to support teaching staff with providing feedback to novices on program design.We applied the tool to a large set of student programs, as well as programs from the Processing community, and code examples used by textbooks and instructors. The latter gave a good sense of the quality of resources that students use for reference. We found that a surprising number of resources contains at least some design smell. The paper then describes how to refactor the code to avoid these smells. These guidelines are meant to be practical and fitting the concepts and constructs that are known to first-year students.
Most novice programmers write code that contains design smells which indicates that they are not understanding and applying important design concepts. This is especially true for students in degrees where programming, and by extension software design, is only a small part of the curriculum. This paper studies design smells in PROCESSING a language for new media and visual arts derived from Java. Language features-as well as common practices in the PROCESSING community-lead to language specific design smells. This paper defines design smells for PROCESSING, informed by a manual analysis of student code and community code. The paper describes how to detect these smells with static analysis. This serves two purposes, first to standardize design requirements, and second to assist educators with giving quality feedback. To validate its effectiveness we apply the tool to student code, community code, and code examples used by textbooks and instructors. This analysis also gives a good sense of common design problems in PROCESSING, their prevalence in novice code, and the quality of resources that students use for reference. 420
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.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.