Novice Use of the Java Programming Language

Saved in:
Bibliographic Details
Title: Novice Use of the Java Programming Language
Language: English
Authors: Brown, Neil C. C. (ORCID 0000-0001-6086-2479), Weill-Tessier, Pierre (ORCID 0000-0002-6999-8767), Sekula, Maksymilian (ORCID 0000-0003-0687-5548), Costache, Alexandra-Lucia (ORCID 0000-0002-5640-3429), Kölling, Michael (ORCID 0000-0003-0544-2003)
Source: ACM Transactions on Computing Education. Mar 2023 23(1).
Availability: Association for Computing Machinery. 2 Penn Plaza Suite 701, New York, NY 10121. Tel: 800-342-6626; Tel: 212-626-0500; Fax: 212-944-1318; e-mail: acmhelp@acm.org; Web site: http://toce.acm.org/
Peer Reviewed: Y
Page Count: 24
Publication Date: 2023
Document Type: Journal Articles
Reports - Research
Descriptors: Novices, Programming, Programming Languages, Data, Data Analysis, Individual Characteristics, Difficulty Level, Behavior, Behavior Patterns, Computer Science Education
DOI: 10.1145/3551393
ISSN: 1946-6226
Abstract: Objectives: Java is a popular programming language for use in computing education, but it is difficult to get a wide picture of the issues that it presents for novices; most studies look only at the types or frequency of errors. In this observational study, we aim to learn how novices use different features of the Java language. Participants: Users of the BlueJ development environment have been invited to opt in to anonymously record their activity data for the past 8 years. This dataset is called Blackbox, which was used as the basis for this study. BlueJ users are mostly novice programmers, predominantly male, with a median age of 16 years. Our data subset featured approximately 225,000 participants from around the world. Study Methods: We performed a secondary data analysis that used data from the Blackbox dataset. We examined over 320,000 Java projects collected over the course of 8 years and used source code analysis to investigate the prevalence of various specifically selected Java programming usage patterns. As this was an observational study without specific hypotheses, we did not use significance tests. Instead, we present the results themselves with commentary, having applied seasonal trend decomposition to the data. Findings: We found many long-term trends in the data over the course of the 8 years, most of which were monotonic. There was a notable reduction in the use of the main method (common in Java but unnecessary in BlueJ) and a general reduction in the complexity of the projects. We find that there is only a small number of frequently used types: int, String, double, and Boolean, but also a wide range of other infrequently used types. Conclusions: We find that programming usage patterns gradually change over a long period of time (a period in which the Java language was not seeing major changes) once seasonal patterns are accounted for. Any changes are likely driven by instructors and the changing demographics of programming novices. The novices use a relatively restricted subset of Java, which implies that designers of languages specifically targeted at novices can satisfy their needs with a smaller set of language constructs and features. We provide detailed recommendations for the designers of educational programming languages and supporting development tools.
Abstractor: As Provided
Entry Date: 2023
Accession Number: EJ1381305
Database: ERIC
FullText Text:
  Availability: 0
Header DbId: eric
DbLabel: ERIC
An: EJ1381305
AccessLevel: 3
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Novice Use of the Java Programming Language
– Name: Language
  Label: Language
  Group: Lang
  Data: English
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Brown%2C+Neil+C%2E+C%2E%22">Brown, Neil C. C.</searchLink> (ORCID <externalLink term="https://orcid.org/0000-0001-6086-2479">0000-0001-6086-2479</externalLink>)<br /><searchLink fieldCode="AR" term="%22Weill-Tessier%2C+Pierre%22">Weill-Tessier, Pierre</searchLink> (ORCID <externalLink term="https://orcid.org/0000-0002-6999-8767">0000-0002-6999-8767</externalLink>)<br /><searchLink fieldCode="AR" term="%22Sekula%2C+Maksymilian%22">Sekula, Maksymilian</searchLink> (ORCID <externalLink term="https://orcid.org/0000-0003-0687-5548">0000-0003-0687-5548</externalLink>)<br /><searchLink fieldCode="AR" term="%22Costache%2C+Alexandra-Lucia%22">Costache, Alexandra-Lucia</searchLink> (ORCID <externalLink term="https://orcid.org/0000-0002-5640-3429">0000-0002-5640-3429</externalLink>)<br /><searchLink fieldCode="AR" term="%22Kölling%2C+Michael%22">Kölling, Michael</searchLink> (ORCID <externalLink term="https://orcid.org/0000-0003-0544-2003">0000-0003-0544-2003</externalLink>)
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="SO" term="%22ACM+Transactions+on+Computing+Education%22"><i>ACM Transactions on Computing Education</i></searchLink>. Mar 2023 23(1).
– Name: Avail
  Label: Availability
  Group: Avail
  Data: Association for Computing Machinery. 2 Penn Plaza Suite 701, New York, NY 10121. Tel: 800-342-6626; Tel: 212-626-0500; Fax: 212-944-1318; e-mail: acmhelp@acm.org; Web site: http://toce.acm.org/
– Name: PeerReviewed
  Label: Peer Reviewed
  Group: SrcInfo
  Data: Y
– Name: Pages
  Label: Page Count
  Group: Src
  Data: 24
– Name: DatePubCY
  Label: Publication Date
  Group: Date
  Data: 2023
– Name: TypeDocument
  Label: Document Type
  Group: TypDoc
  Data: Journal Articles<br />Reports - Research
– Name: Subject
  Label: Descriptors
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Novices%22">Novices</searchLink><br /><searchLink fieldCode="DE" term="%22Programming%22">Programming</searchLink><br /><searchLink fieldCode="DE" term="%22Programming+Languages%22">Programming Languages</searchLink><br /><searchLink fieldCode="DE" term="%22Data%22">Data</searchLink><br /><searchLink fieldCode="DE" term="%22Data+Analysis%22">Data Analysis</searchLink><br /><searchLink fieldCode="DE" term="%22Individual+Characteristics%22">Individual Characteristics</searchLink><br /><searchLink fieldCode="DE" term="%22Difficulty+Level%22">Difficulty Level</searchLink><br /><searchLink fieldCode="DE" term="%22Behavior%22">Behavior</searchLink><br /><searchLink fieldCode="DE" term="%22Behavior+Patterns%22">Behavior Patterns</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+Science+Education%22">Computer Science Education</searchLink>
– Name: DOI
  Label: DOI
  Group: ID
  Data: 10.1145/3551393
– Name: ISSN
  Label: ISSN
  Group: ISSN
  Data: 1946-6226
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Objectives: Java is a popular programming language for use in computing education, but it is difficult to get a wide picture of the issues that it presents for novices; most studies look only at the types or frequency of errors. In this observational study, we aim to learn how novices use different features of the Java language. Participants: Users of the BlueJ development environment have been invited to opt in to anonymously record their activity data for the past 8 years. This dataset is called Blackbox, which was used as the basis for this study. BlueJ users are mostly novice programmers, predominantly male, with a median age of 16 years. Our data subset featured approximately 225,000 participants from around the world. Study Methods: We performed a secondary data analysis that used data from the Blackbox dataset. We examined over 320,000 Java projects collected over the course of 8 years and used source code analysis to investigate the prevalence of various specifically selected Java programming usage patterns. As this was an observational study without specific hypotheses, we did not use significance tests. Instead, we present the results themselves with commentary, having applied seasonal trend decomposition to the data. Findings: We found many long-term trends in the data over the course of the 8 years, most of which were monotonic. There was a notable reduction in the use of the main method (common in Java but unnecessary in BlueJ) and a general reduction in the complexity of the projects. We find that there is only a small number of frequently used types: int, String, double, and Boolean, but also a wide range of other infrequently used types. Conclusions: We find that programming usage patterns gradually change over a long period of time (a period in which the Java language was not seeing major changes) once seasonal patterns are accounted for. Any changes are likely driven by instructors and the changing demographics of programming novices. The novices use a relatively restricted subset of Java, which implies that designers of languages specifically targeted at novices can satisfy their needs with a smaller set of language constructs and features. We provide detailed recommendations for the designers of educational programming languages and supporting development tools.
– Name: AbstractInfo
  Label: Abstractor
  Group: Ab
  Data: As Provided
– Name: DateEntry
  Label: Entry Date
  Group: Date
  Data: 2023
– Name: AN
  Label: Accession Number
  Group: ID
  Data: EJ1381305
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=eric&AN=EJ1381305
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1145/3551393
    Languages:
      – Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 24
    Subjects:
      – SubjectFull: Novices
        Type: general
      – SubjectFull: Programming
        Type: general
      – SubjectFull: Programming Languages
        Type: general
      – SubjectFull: Data
        Type: general
      – SubjectFull: Data Analysis
        Type: general
      – SubjectFull: Individual Characteristics
        Type: general
      – SubjectFull: Difficulty Level
        Type: general
      – SubjectFull: Behavior
        Type: general
      – SubjectFull: Behavior Patterns
        Type: general
      – SubjectFull: Computer Science Education
        Type: general
    Titles:
      – TitleFull: Novice Use of the Java Programming Language
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Brown, Neil C. C.
      – PersonEntity:
          Name:
            NameFull: Weill-Tessier, Pierre
      – PersonEntity:
          Name:
            NameFull: Sekula, Maksymilian
      – PersonEntity:
          Name:
            NameFull: Costache, Alexandra-Lucia
      – PersonEntity:
          Name:
            NameFull: Kölling, Michael
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 03
              Type: published
              Y: 2023
          Identifiers:
            – Type: issn-electronic
              Value: 1946-6226
          Numbering:
            – Type: volume
              Value: 23
            – Type: issue
              Value: 1
          Titles:
            – TitleFull: ACM Transactions on Computing Education
              Type: main
ResultId 1