Understanding semantic style by analysing student code

Giuseppe De Ruvo, Ewan D. Tempero, Andrew Luxton-Reilly, Gerard B. Rowe, Nasser Giacaman · 2018

Good coding style is recognised by the software engineering profession as being important, and this is reflected in the standard computing curricula. Feedback on some aspects of coding style is now commonly provided by IDEs and by tools such as Checkstyle, but this feedback focuses on coding standards that are largely based on syntax. However, some aspects of coding style relate to the semantics of code --- of the many ways to achieve some functionality, some are preferred because they are simpler, yet students struggle to create them. In this paper, we introduce the concept of semantic style, and in particular semantic style indicators that may be manifestations of poor knowledge of some programming concepts. We describe 16 semantic style indicators and demonstrate their prevalence in almost 19,000 code samples submitted by over 900 novice students. Half the students submitted code exhibiting two or more of these indicators, demonstrating the potential value to learn by providing feedback on semantic style. We also find many indicators are present in the code of students attending their fourth year of a highly competitive Software Engineering programme, demonstrating the need for more attention to teaching of semantic style issues.

Read the paper · More papers on PaperTik