Java remains one of the most popular programming languages in education. Although Java programming education is well supported by study materials, learners also need more immediate support on the problems they face in their own code. When this support cannot be offered by educators personally, learners can resort to automated program analysis tools such as linters, which provide feedback on potential bugs or code issues. This is constructive feedback, but it can nevertheless feel like criticism, and it overlooks learners’ achievements. This paper introduces code perfumes for Java, a simple program analysis technique similar to linting, but commending the correct application of good programming practices. We present a catalogue of 20 Java code perfumes related to common Java language constructs for beginner to immediate learners. Our evaluation shows that these code perfumes occur frequently in learners’ code, and programs with more code perfume instances tend to have better functionality and readability. Moreover, students who incorporate more code perfumes tend to achieve higher grades. Thus, code perfumes serve as a valuable tool to acknowledge learners’ successes, and as a means to inform instructors about their learners’ progress.
Wed 31 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:40 - 17:00 | Software Quality and ImprovementResearch Track at Room 1 Chair(s): Niklas Meissner Institute of Software Engineering, University of Stuttgart | ||
15:40 26mTalk | Acknowledging Good Java Code with Code Perfumes Research Track Philipp Straubinger University of Passau, Florian Obermueller University of Passau, Gordon Fraser University of Passau | ||
16:06 26mTalk | Cultivating Software Quality Improvement in the Classroom: An Experience with ChatGPT Research Track Eman Abdullah AlOmar Stevens Institute of Technology, Mohamed Wiem Mkaouer University of Michigan - Flint | ||
16:33 26mTalk | Using Generative AI to Create User Stories in the Software Engineering Classroom Research Track |
Enter the building and take the main stairs or elevator to the top floor.