Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3636243.3636262acmotherconferencesArticle/Chapter ViewAbstractPublication Pagesaus-ceConference Proceedingsconference-collections
research-article

A Static Analysis Tool in CS1: Student Usage and Perceptions of PythonTA

Published: 29 January 2024 Publication History

Abstract

Static analysis tools help programmers write better code. In computer science education, such tools can help students identify common style and coding errors, and lead students to fixing them. However, static analysis tools should be deployed in the classroom with care, so that all students—especially novice programmers—are empowered to act on the feedback they receive from these tools. For the past several years, our department has been integrating PythonTA, an educational static analysis tool, into a large CS1 course to provide students regular formative feedback and as part of the grading of programming assignments. This paper reports on a study of over 800 students conducted in the September 2022 offering of this course. Using both quantitative and qualitative methods, we investigate how students used PythonTA and their perceptions of its helpfulness. Overall, students across all levels of prior programming experience report that this static analysis tool was helpful. Though students with prior experience reported being more confident using the tool than novice programmers, this gap in confidence shrank over the semester. A thematic analysis of student comments on PythonTA found that many students appreciated the tool for improving the quality of their code and their own programming habits, but others responded more negatively, including mentioning frustration or confusion caused by PythonTA’s error messages. We discuss our findings and provide recommendations for educators considering the adoption of static analysis tools in their classrooms.

References

[1]
Brett A. Becker, Paul Denny, Raymond Pettit, Durell Bouchard, Dennis J. Bouvier, Brian Harrington, Amir Kamil, Amey Karkare, Chris McDonald, Peter-Michael Osera, Janice L. Pearce, and James Prather. 2019. Compiler Error Messages Considered Unhelpful: The Landscape of Text-Based Programming Error Message Research. In Proceedings of the Working Group Reports on Innovation and Technology in Computer Science Education (Aberdeen, Scotland Uk) (ITiCSE-WGR ’19). Association for Computing Machinery, New York, NY, USA, 177–210. https://doi.org/10.1145/3344429.3372508
[2]
Anastasiia Birillo, Ilya Vlasov, Artyom Burylov, Vitalii Selishchev, Artyom Goncharov, Elena Tikhomirova, Nikolay Vyahhi, and Timofey Bryksin. 2022. Hyperstyle: A Tool for Assessing the Code Quality of Solutions to Programming Assignments. In Proceedings of the 53rd ACM Technical Symposium on Computer Science Education - Volume 1 (Providence, RI, USA) (SIGCSE 2022). Association for Computing Machinery, New York, NY, USA, 307–313. https://doi.org/10.1145/3478431.3499294
[3]
Jürgen Börstler, Harald Störrle, Daniel Toll, Jelle van Assema, Rodrigo Duran, Sara Hooshangi, Johan Jeuring, Hieke Keuning, Carsten Kleiner, and Bonnie MacKellar. 2018. "I Know It When I See It" Perceptions of Code Quality: ITiCSE ’17 Working Group Report. In Proceedings of the 2017 ITiCSE Conference on Working Group Reports (Bologna, Italy) (ITiCSE-WGR ’17). Association for Computing Machinery, New York, NY, USA, 70–85. https://doi.org/10.1145/3174781.3174785
[4]
Rohan Roy Choudhury, HeZheng Yin, Joseph Moghadam, and Armando Fox. 2016. AutoStyle: Toward Coding Style Feedback At Scale. In Proceedings of the 19th ACM Conference on Computer Supported Cooperative Work and Social Computing Companion (San Francisco, California, USA) (CSCW ’16 Companion). Association for Computing Machinery, New York, NY, USA, 21–24. https://doi.org/10.1145/2818052.2874315
[5]
CodeQL/Semmle Contributors. 2019. CodeQL/Semmle. GitHub, Inc. https://github.com/github/codeql
[6]
W J Conover and R L Iman. 1979. Multiple-comparisons procedures. Informal report. Technical Report. Los Alamos National Lab. https://doi.org/10.2172/6057803
[7]
Ian Stapleton Cordasco. 2023. Flake8. https://flake8.pycqa.org
[8]
Anna B Costello and Jason Osborne. 2005. Best practices in exploratory factor analysis: Four recommendations for getting the most from your analysis. Practical assessment, research, and evaluation 10, 1 (2005), 7.
[9]
Diana Cristea, Diana Şotropa, Arthur-Jozsef Molnar, and Simona Motogna. 2021. On the Use of FCA Models in Static Analysis Tools to Detect Common Errors in Programming. In Graph-Based Representation and Reasoning, Tanya Braun, Marcel Gehrke, Tom Hanika, and Nathalie Hernandez (Eds.). Springer International Publishing, Cham, 3–18.
[10]
Stephen H. Edwards, Nischel Kandru, and Mukund B.M. Rajagopal. 2017. Investigating Static Analysis Errors in Student Java Programs. In Proceedings of the 2017 ACM Conference on International Computing Education Research (Tacoma, Washington, USA) (ICER ’17). Association for Computing Machinery, New York, NY, USA, 65–73. https://doi.org/10.1145/3105726.3106182
[11]
Stephen H. Edwards, Jaime Spacco, and David Hovemeyer. 2019. Can Industrial-Strength Static Analysis Be Used to Help Students Who Are Struggling to Complete Programming Activities?. In 52nd Hawaii International Conference on System Sciences, HICSS 2019, Grand Wailea, Maui, Hawaii, USA, January 8-11, 2019, Tung Bui (Ed.). ScholarSpace, 1–10. https://hdl.handle.net/10125/60221
[12]
Nupur Garg and Aaron W. Keen. 2018. Earthworm: Automated Decomposition Suggestions. In Proceedings of the 18th Koli Calling International Conference on Computing Education Research (Koli, Finland) (Koli Calling ’18). Association for Computing Machinery, New York, NY, USA, Article 16, 5 pages. https://doi.org/10.1145/3279720.3279736
[13]
Rowan Hart, Brian Hays, Connor McMillin, El Kindi Rezig, Gustavo Rodriguez-Rivera, and Jeffrey A. Turkstra. 2023. Eastwood-Tidy: C Linting for Automated Code Style Assessment in Programming Courses. In Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1 (Toronto ON, Canada) (SIGCSE 2023). Association for Computing Machinery, New York, NY, USA, 799–805. https://doi.org/10.1145/3545945.3569817
[14]
Zhewei Hu and Edward F. Gehringer. 2019. Improving Feedback on GitHub Pull Requests: A Bots Approach. In 2019 IEEE Frontiers in Education Conference (FIE) (Covington, KY, USA). IEEE Press, 1–9. https://doi.org/10.1109/FIE43999.2019.9028685
[15]
C. D. Hundhausen, D. M. Olivares, and A. S. Carter. 2017. IDE-Based Learning Analytics for Computing Education: A Process Model, Critical Review, and Research Agenda. ACM Trans. Comput. Educ. 17, 3, Article 11 (aug 2017), 26 pages. https://doi.org/10.1145/3105759
[16]
Roman Ivanov. 2022. Checkstyle. https://checkstyle.sourceforge.io
[17]
Hieke Keuning, Bastiaan Heeren, and Johan Jeuring. 2017. Code Quality Issues in Student Programs. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education (Bologna, Italy) (ITiCSE ’17). Association for Computing Machinery, New York, NY, USA, 110–115. https://doi.org/10.1145/3059009.3059061
[18]
Hieke Keuning, Johan Jeuring, and Bastiaan Heeren. 2023. A Systematic Mapping Study of Code Quality in Education. In Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1 (Turku, Finland) (ITiCSE 2023). Association for Computing Machinery, New York, NY, USA, 5–11. https://doi.org/10.1145/3587102.3588777
[19]
Diana Kirk, Tyne Crow, Andrew Luxton-Reilly, and Ewan Tempero. 2020. On Assuring Learning About Code Quality. In Proceedings of the Twenty-Second Australasian Computing Education Conference (Melbourne, VIC, Australia) (ACE’20). Association for Computing Machinery, New York, NY, USA, 86–94. https://doi.org/10.1145/3373165.3373175
[20]
Eva Kyndt and Patrick Onghena. 2014. The integration of work and learning: Tackling the complexity with structural equation modelling. In Discourses on professional learning: On the boundary between learning and working. Springer, 255–291.
[21]
J Richard Landis and Gary G Koch. 1977. The measurement of observer agreement for categorical data. biometrics 31, 1 (1977), 159–174.
[22]
David Liu. 2023. PythonTA. https://www.cs.toronto.edu/ david/pyta/
[23]
David Liu and Andrew Petersen. 2019. Static Analyses in Python Programming Courses. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (Minneapolis, MN, USA) (SIGCSE ’19). Association for Computing Machinery, New York, NY, USA, 666–671. https://doi.org/10.1145/3287324.3287503
[24]
LLVM Developer Group. 2023. Clang Static Analyzer. https://clang-analyzer.llvm.org
[25]
Roope Luukkainen, Jussi Kasurinen, Uolevi Nikula, and Valentina Lenarduzzi. 2022. ASPA: A Static Analyser to Support Learning and Continuous Feedback on Programming Courses. An Empirical Validation. In Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Software Engineering Education and Training (Pittsburgh, Pennsylvania) (ICSE-SEET ’22). Association for Computing Machinery, New York, NY, USA, 29–39. https://doi.org/10.1145/3510456.3514149
[26]
Joseph Bahman Moghadam, Rohan Roy Choudhury, HeZheng Yin, and Armando Fox. 2015. AutoStyle: Toward Coding Style Feedback at Scale. In Proceedings of the Second (2015) ACM Conference on Learning @ Scale (Vancouver, BC, Canada) (L@S ’15). Association for Computing Machinery, New York, NY, USA, 261–266. https://doi.org/10.1145/2724660.2728672
[27]
Arthur-Jozsef Molnar, Simona Motogna, and Cristina Vlad. 2020. Using Static Analysis Tools to Assist Student Project Evaluation. In Proceedings of the 2nd ACM SIGSOFT International Workshop on Education through Advanced Software Engineering and Artificial Intelligence (Virtual, USA) (EASEAI 2020). Association for Computing Machinery, New York, NY, USA, 7–12. https://doi.org/10.1145/3412453.3423195
[28]
Mika Ohtsuki, Kazuki Ohta, and Tetsuro Kakeshita. 2016. Software Engineer Education Support System ALECSS Utilizing DevOps Tools. In Proceedings of the 18th International Conference on Information Integration and Web-Based Applications and Services (Singapore, Singapore) (iiWAS ’16). Association for Computing Machinery, New York, NY, USA, 209–213. https://doi.org/10.1145/3011141.3011200
[29]
Bill Pugh. 2015. FindBugs. https://findbugs.sourceforge.net/
[30]
Pylint contributors. 2023. pylint. https://pylint.readthedocs.io/en/latest/
[31]
Kyle Reestman and Brian Dorn. 2019. Native Language’s Effect on Java Compiler Errors. In Proceedings of the 2019 ACM Conference on International Computing Education Research (Toronto ON, Canada) (ICER ’19). Association for Computing Machinery, New York, NY, USA, 249–257. https://doi.org/10.1145/3291279.3339423
[32]
Johann C. Rocholl. 2023. pycodestyle. https://pycodestyle.pycqa.org/
[33]
Leo C. Ureel II and Charles Wallace. 2019. Automated Critique of Early Programming Antipatterns. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (Minneapolis, MN, USA) (SIGCSE ’19). Association for Computing Machinery, New York, NY, USA, 738–744. https://doi.org/10.1145/3287324.3287463
[34]
Wingware. 2023. Wing Python IDE. http://wingware.com
[35]
Nicholas C. Zakas. 2023. ESLint. https://eslint.org/
[36]
Imre Zsigmond., Maria Iuliana Bocicor., and Arthur-Jozsef Molnar.2020. Gamification based Learning Environment for Computer Science Students. In Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering - ENASE. INSTICC, SciTePress, 556–563. https://doi.org/10.5220/0009579305560563

Cited By

View all
  • (2024)Exploring the Acceptance and Effectiveness of Parsons Problems on Scaffolding CS1 RetakersProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653590(681-687)Online publication date: 3-Jul-2024
  • (2024)Are a Static Analysis Tool Study's Findings Static? A ReplicationProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653545(80-86)Online publication date: 3-Jul-2024
  • (2024)Overcoming Barriers in Scaling Computing Education Research Programming Tools: A Developer's PerspectiveProceedings of the 2024 ACM Conference on International Computing Education Research - Volume 110.1145/3632620.3671113(312-325)Online publication date: 12-Aug-2024

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
ACE '24: Proceedings of the 26th Australasian Computing Education Conference
January 2024
208 pages
ISBN:9798400716195
DOI:10.1145/3636243
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: 29 January 2024

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. error messages
  2. static analysis
  3. style checker

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ACE 2024
ACE 2024: Australian Computing Education Conference
January 29 - February 2, 2024
NSW, Sydney, Australia

Acceptance Rates

Overall Acceptance Rate 161 of 359 submissions, 45%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)72
  • Downloads (Last 6 weeks)11
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Exploring the Acceptance and Effectiveness of Parsons Problems on Scaffolding CS1 RetakersProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653590(681-687)Online publication date: 3-Jul-2024
  • (2024)Are a Static Analysis Tool Study's Findings Static? A ReplicationProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653545(80-86)Online publication date: 3-Jul-2024
  • (2024)Overcoming Barriers in Scaling Computing Education Research Programming Tools: A Developer's PerspectiveProceedings of the 2024 ACM Conference on International Computing Education Research - Volume 110.1145/3632620.3671113(312-325)Online publication date: 12-Aug-2024

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media