skip to main content
10.1145/3105726.3106182acmconferencesArticle/Chapter ViewAbstractPublication PagesicerConference Proceedingsconference-collections
research-article
Public Access

Investigating Static Analysis Errors in Student Java Programs

Published:14 August 2017Publication History

ABSTRACT

Research on students learning to program has produced studies on both compile-time errors (syntax errors) and run-time errors (exceptions). Both of these types of errors are natural targets, since detection is built into the programming language. In this paper, we present an empirical investigation of static analysis errors present in syntactically correct code. Static analysis errors can be revealed by tools that examine a program's source code, but this error detection is typically not built into common programming languages and instead requires separate tools. Static analysis can be used to check formatting or commenting expectations, but it also can be used to identify problematic code or to find some kinds of conceptual or logic errors. We study nearly 10 million static analysis errors found in over 500 thousand program submissions made by students over a five-semester period. The study includes data from four separate courses, including a non-majors introductory course as well as the CS1/CS2/CS3 sequence for CS majors. We examine the differences between the error rates of CS major and non-major beginners, and also examine how these patterns change over time as students progress through the CS major course sequence. Our investigation shows that while formatting and Javadoc issues are the most common, static checks that identify coding flaws that are likely to be errors are strongly correlated with producing correct programs, even when students eventually fix the problems. With experience, students produce fewer errors, but the errors that are most frequent are consistent between both computer science majors and non-majors, and across experience levels. These results can highlight student struggles or misunderstandings that have escaped past analyses focused on syntax or run-time errors.

References

  1. M. Ahmadzadeh, D. Elliman, and C. Higgins. An analysis of patterns of debugging among novice computer science students. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education, ITiCSE '05, pages 84{88, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Altadmri and N. C. C. Brown. 37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data. SIGCSE '15 Proceedings of the 46th ACM Technical Symposium on Computer Science Education. Pages 522--527Google ScholarGoogle Scholar
  3. D. McCall and M. Kolling. Meaningful categorisation of novice programmer errors. In Frontiers In Education Conference, pages 2589--2596, 2014. Google ScholarGoogle ScholarCross RefCross Ref
  4. P. Denny, A. Luxton-Reilly, and E. Tempero. All syntax errors are not equal. In Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE '12, pages 75--80, New York, NY, USA, 2012. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. C. Jadud and B. Dorn. Aggregate Compilation Behavior: Findings and Implications from 27,698 Users. ICER '15 Proceedings of the eleventh annual International Conference on International Computing Education Research. Pages 131--139Google ScholarGoogle Scholar
  6. E. S. Tabanao, M. M. T. Rodrigo, and M. C. Jadud. Predicting at-risk novice Java programmers through the analysis of online protocols. In Proceedings of the Seventh International Workshop on Computing Education Research, ICER '11, pages 85--92, NewYork, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. M. T. Rodrigo, T. C. S. Andallaza, F. E. V. G. Castro, M. L. V. Armenta, T. T. Dy, and M. C. Jadud. An analysis of java programming behaviors, affect, perceptions, and syntax errors among low-achieving, average, and high-achieving novice programmers. Journal of Educational Computing Research, 49(3):293--325, 2013. Google ScholarGoogle ScholarCross RefCross Ref
  8. S. H. Edwards and M. A. Perez-Quinones. Web-cat: automatically grading programming assignments. In ACM SIGCSE Bulletin, volume 40, pages 328--328. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. N. Truong, P. Roe and P. Bancroft. Static analysis of students' Java programs. ACE '04 Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30 Pages 317--325.Google ScholarGoogle Scholar
  10. C. Artho and A. Biere. Applying Static Analysis to Large-Scale, Multi-Threaded Java Programs. ASWEC '01 Proceedings of the 13th Australian Conference on Software Engineering. Page 68Google ScholarGoogle Scholar
  11. Fenwick, J.B.Jr., Norris, C., Barry, F.E., Rountree,J., Spicer,C.J. and Cheek, S.D. 2009. Another look at the behaviors of novice programmers. SIGCSE Bull. 41, 1 (March 2009), 296--300. DOI=10.1145/1539024.1508973Google ScholarGoogle Scholar
  12. A. Stefik and S. Siebert. An empirical investigation into programming language syntax. Trans. Comput. Educ., 13(4):19:1{19:40, Nov. 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Mengel, S. and Yerramilli, V. (1999): A Case Study Of The Static Analysis Of the Quality Of Novice Student Programs. Proc. Thirtieth SIGCSE technical symposium on Computer science education, New Orleans, Louisiana, United States, 13:78--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Ayewah, W. Pugh, J. David Morgenthaler, J. Penix and Y. Zhou. Evaluating Static Analysis Defect Warnings On Production Software. PASTE '07 Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, San Diego, California, United States. Pages 1--8. June 2007 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. N. Nagappan and T. Ball. Static Analysis Tools as Early Indicators of Pre-Release Defect Density. ICSE '05 Proceedings of the 27th international conference on Software engineering. Pages 580--586. St. Louis, MO, USA - May 15 - 21, 2005.Google ScholarGoogle Scholar

Index Terms

  1. Investigating Static Analysis Errors in Student Java Programs

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          ICER '17: Proceedings of the 2017 ACM Conference on International Computing Education Research
          August 2017
          316 pages
          ISBN:9781450349680
          DOI:10.1145/3105726

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 14 August 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          ICER '17 Paper Acceptance Rate29of180submissions,16%Overall Acceptance Rate189of803submissions,24%

          Upcoming Conference

          ICER 2024
          ACM Conference on International Computing Education Research
          August 13 - 15, 2024
          Melbourne , VIC , Australia

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader