Usage of the Java Language by Novices over Time: Implications for Tool and Language Design

Pierre Weill-Tessier, Alexandra Lucia Costache, Neil Brown

Research output: Chapter in Book/Report/Conference proceedingConference paperpeer-review

3 Citations (Scopus)
128 Downloads (Pure)

Abstract

Java is a popular programming language for teaching at university level. BlueJ is a popular tool for teaching Java to beginners. We provide several analyses of Java use in BlueJ to answer three questions: what use is made of different parts of Java by beginners when learning to program; how has this pattern of use changed between 2013 and 2019 in a longstanding language such as Java; and to what extent do beginners follow the specific style that BlueJ is designed to guide them into? These analyses allow us to see what features are important in object-oriented introductory programming languages, which could inform language and tool designers -- and see to what extent the design of these programming tools can have an effect on the way the language is used. We find that many beginners disobey the guidelines that BlueJ promotes, and that patterns of Java use are generally stable over time -- but we do see decreased exception use and a change in target application domains away from GUI programming towards text processing. We conclude that programming languages for novices could have fewer built-in types but should retain rich libraries.
Original languageEnglish
Title of host publicationSIGCSE 2021 - Proceedings of the 52nd ACM Technical Symposium on Computer Science Education
PublisherAssociation for Computing Machinery
Pages328-334
Number of pages7
Edition2021
ISBN (Electronic)9781450380621
ISBN (Print)9781450380621
DOIs
Publication statusPublished - 3 Mar 2021

Publication series

NameSIGCSE 2021 - Proceedings of the 52nd ACM Technical Symposium on Computer Science Education

Fingerprint

Dive into the research topics of 'Usage of the Java Language by Novices over Time: Implications for Tool and Language Design'. Together they form a unique fingerprint.

Cite this