Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3587102.3588838acmconferencesArticle/Chapter ViewAbstractPublication PagesiticseConference Proceedingsconference-collections
research-article

SIDE-lib: A Library for Detecting Symptoms of Python Programming Misconceptions

Published: 30 June 2023 Publication History

Abstract

Extensive prior work has identified and described misconceptions held by novice programmers. Much of this prior work has involved at least some automatic detection of potential misconceptions using a variety of methods such as intercepting compiler error messages, pattern matching, and black-box testing. To the best of our knowledge, no independent and flexible tool for automatic detection of misconceptions is currently available to the research community, meaning that detection must be reimplemented from scratch for each new project that aims to understand or support novice programmers using automatic analysis. This is time-consuming work, particularly for misconceptions that require understanding of the context of a program beyond localised syntax patterns. In this paper, we introduce SIDE-lib, a standalone library for detecting symptoms of Python misconceptions. This library is made available with the goal of simplifying and speeding up research on Python misconceptions and the development of tools to support learning. We also describe example use cases for the library, including how we are using it in our ongoing research.

References

[1]
Ella Albrecht and Jens Grabowski. 2020. Sometimes It's Just Sloppiness - Studying Students' Programming Errors and Misconceptions. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education (SIGCSE '20). ACM, Portland OR USA, 340--345. https://doi.org/10.1145/3328778.3366862
[2]
Amjad Altadmri and Neil C. C. Brown. 2015. 37 Million Compilations: Investigating Novice Programming Mistakes in Large Scale Student Data. In Proceedings of SIDE-lib: A Library for Detecting Symptoms of Python Programming Misconceptions ITiCSE 2023, July 8--12, 2023, Turku, Finland. the 45th ACM Technical Symposium on Computer Science Education (SIGCSE '15). ACM, Kansas City MO USA, 522--527. https://doi.org/10.1145/2676723.2677258
[3]
Piraye Bayman and Richard E. Mayer. 1983. A Diagnosis of Beginning Programmers' Misconceptions of BASIC Programming Statements. Commun. ACM 54, 9 (Sept. 1983), 677--679. https://doi.org/10.1145/358172.358408
[4]
Piraya Bayman and Richard E. Mayer. 1988. Using Conceptual Models to Teach BASIC Computer Programming. Journal of Educational Psychology 80, 3 (1988), 291--298.
[5]
Neil C. C. Brown and Amad Altadmri. 2014. Investigating Novice Programming Mistakes: Educator Beliefs vs. Student Data. In Proceedings of the 10th Annual Conference on International Computing Education Research (ICER '14).
[6]
Neil C. C. Brown, Michael Kölling, Davin McCall, and Ian Utting. 2014. Blackbox: A Large Scale Repository of Novice Programmers' Activity. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education (SIGCSE '14). ACM, Atlanta GA USA, 223--228. https://doi.org/10.1145/2538862.2538924
[7]
Ricardo Caceffo, Pablo Frank-Bolton, Renan Souza, and Rodolfo Azevedo. 2019. Identifying and Validating Java Misconceptions Toward a CS1 Concept Inventory. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '19). ACM, Aberdeen Scotland UK, 23--29. https://doi.org/10.1145/3304221.3319771
[8]
Luca Chiodini, Igor Moreno Santos, Andrea Gallidabino, Anya Tafliovich, André L. Santos, and Matthias Hauswirth. 2021. A Curated Inventory of Programming Language Misconceptions. In Proceedings of the 26th ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '21). ACM, Virtual Event, 380--386. https://doi.org/10.1145/3430665.3456343
[9]
Thomas Dy and Ma Mercedes Rodrigo. 2010. A Detector for Non-Literal Java Errors. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research (Koli Calling, '10). ACM, Berlin, Germany, 118--122. https://doi.org/10.1145/1930464.1930485
[10]
Anna Eckerdal and Michael Thune. 2005. Novice Java programmers' conceptions of 'object' and 'class', and variation theory. In Proceedings of the 2005 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '05). ACM, Monte de Caparica Portugal. https://doi.org/10.1145/1067445.1067473
[11]
Andrew Ettles, Andrew Luxton-Reilly, and Paul Denny. 2018. Common Logic Errors Made By Novice Programmers. In Proceedings of the 20th Australasian Computing Education Conference (ACE '18). ACM, Brisbane Australia, 83--89. https://doi.org/10.1145/3160489.3160493
[12]
Ann E. Fleury. 1991. Parameter Passing: The Rules Students Construct. In Proceedings of the Twenty-Second SIGCSE Technical Symposium on Computer Science Education (SIGCSE '91). ACM, San Antonio TX USA, 283--286. https: //doi.org/10.1145/107004.107066
[13]
Ann E. Fleury. 2000. Programming in Java: Student-Constructed Rules. In Proceedings of the Thirty-First SIGCSE Technical Symposium on Computer Science Education (SIGCSE '00). ACM, Austin TX USA, 197--201. https://doi.org/10.1145/ 330908.331854
[14]
Python Software Foundation. 2023. Execution Model. Retrieved Jan 17, 2023 from https://docs.python.org/3/referenceexecutionmodel.html
[15]
Guilherme Gama, Ricardo Caceffo, Renan Souza, Raysa Benatti, Tales Aparecida, Islene Garcia, and Rodolfo Azevedo. 2018. An Antipattern Documentation about Misconceptions related to an Introductory Programming Course in Python. Technical Report IC-18--19. Institute of Computing, University of Campinas, Campinas Brazil.
[16]
Luke Gusukuma, Austin Cory Bart, and Dennis Kafura. 2020. Pedal: An Infrastructure for Automated Feedback Systems. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education (SIGCSE '20). ACM, Portland OR USA, 1061--1067. https://doi.org/10.1145/3328778.3366913
[17]
Luke Gusukuma, Austin Cory Bart, Dennis Kafura, and Jeremy Ernst. 2018. Misconception-Driven Feedback: Results from an Experimental Study. In Proceedings of the 2018 ACM Conference on International Computing Education Research (ICER '18). ACM, Espoo Finland, 160--168. https://doi.org/10.1145/3230977. 3231002
[18]
Simon Holland, Robert Griffiths, and Mark Woodman. 1997. Avoiding Object Misconceptions. In Proceedings of the 28th ACM Technical Symposium on Computer Science Education (SIGCSE '97). ACM, CA USA, 131--134. https://doi.org/10.1145/ 268084.268132
[19]
Maria Hristova, Ananya Misra, Megan Rutter, and Rebecca Mercuri. 2003. Identifying and Correcting Java Programming Errors for Introductory Computer Science Students. In Proceedings of the 34th ACM Technical Symposium on Computer Science Education (SIGCSE '03). ACM, Reno NV USA, 153--156. https://doi.org/10.1145/611892.611956
[20]
Matthew C Jadud. 2005. A First Look at Novice Compilation Behaviour Using BlueJ. Computer Science Education 15, 1 (2005), 25--40. https://doi.org/10.1080/ 08993400500056530
[21]
Fionnuala Johnson, Stephen McQuistin, and John O'Donnell. 2020. Analysis of Student Misconceptions using Python as an Introductory Programming Language. In Proceedings of the 4th Conference on Computing Education Practice 2020 (CEP 2020). ACM, Durham UK, 1--4. https://doi.org/10.1145/3372356.3372360
[22]
Fionnuala Johnson, Stephen McQuistin, John O'Donnell, and Quintin Cutts. 2022. Experience Report: Identifying Unexpected Programming Misconceptions with a Computer Systems Approach. In Proceedings of the 2022 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE '22). ACM, Dublin Ireland. https://doi.org/10.1145/3502718.3524775
[23]
Lisa Kaczmarczyk, Elizabeth R. Petrick, Philip J. East, and Geoffry L. Herman. 2010. Identifying Student Misconceptions of Programming. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE '10). ACM, Milwaukee WI USA, 107--111. https://doi.org/10.1145/1734263.1734299
[24]
David Liu and Andrew Petersen. 2019. Static Analyses in Python Programming Courses. In Proceedings of the Fiftieth SIGCSE Technical Symposium on Computer Science Education (SIGCSE '19). ACM, Minneapolis MN USA, 666--671. https: //doi.org/10.1145/3287324.3287503
[25]
Davin McCall and Michael Kölling. 2014. Meaningful Categorisation of Novice Programming Errors. In Proceedings of the 2014 Frontiers in Education Conference (FIE '14). Madrid Spain. https://doi.org/10.1109/FIE.2014.7044420
[26]
Davin McCall and Michael Kölling. 2019. A New Look at Novice Programmer Errors. ACM Transactions on Computing Education 9, 4 (2019), 1--30. https: //doi.org/10.1145/3335814
[27]
Tanya J. McGill and Simone E. Volet. 1997. A Conceptual Framework for Analyzing Students' Knowledge of Programming. Journal of Research on Computing in Education 29, 3 (1997), 276--297. https://doi.org/10.1080/08886504.1997.10782199
[28]
Antonija Mitrovic. 2012. Fifteen Years of Constraint-Based Tutors: What We Have Achieved And Where We Are Going. User Modelling and User-Adapted Interaction 1--2 (2012), 39--72. https://doi.org/10.1007/s11257-011--9105--9
[29]
Roy D. Pea. 1986. Language-Independent Conceptual 'Bugs' in Novice Programming. Journal of Educational Computing Research 2, 1 (Feb. 1986). https: //doi.org/10.2190/689T-1R2A-X4W4--29J2
[30]
Yizhou Qian and James Lehman. 2017. Students' Misconceptions and Other Difficulties in Introductory Programming: A Literature Review. ACM Transactions on Computing Education 18, 1 (2017), 24. https://doi.org/10.1145/3077618
[31]
K. Andrew R. Richards and Michael A. Hemphill. 2018. A Practical Guide to Collaborative Qualitative Data Analysis. The Journal of Teaching in Physical Education 37, 2 (2018), 225--231. https://doi.org/10.1123/jtpe.2017-0084
[32]
Kelly Rivers, Erik Harpstead, and Ken Koedinger. 2016. Learning Curve Analysis for Programming: Which Concepts do Students Struggle With?. In Proceedings of the 2016 ACM Conference on International Computing Education Research (ICER '16). ACM, Melbourne Australia, 143--151. https://doi.org/10.1145/2960310. 2960333
[33]
Kelly Rivers and Kenneth R. Koedinger. 2015. Data-Driven Hint Generation in Vast Solution Spaces: A Self-Improving Python Tutor. International Journal of Artificial Intelligence in Education 27, 1 (2015), 37--64. https://doi.org/10.1007/ s40593-015-0070-z
[34]
Teemu Sirkiä and Juha Sorva. 2012. Exploring Programming Misconceptions: An Analysis of Student Mistakes in Visual Program Simulation Exercises. In Proceedings of the 12th Koli Calling International Conference on Computing Education Research (Koli Calling '12). ACM, Koli Finland, 19--28. https://doi.org/10.1145/ 2401796.2401799
[35]
Juha Sorva. 2012. Visual Program Simulation in Introductory Programming Education. Ph.D. Dissertation. Aalto University, Espoo Finland.

Cited By

View all
  • (2024)Feedback Literacy: Holistic Analysis of Secondary Educators' Views of LLM Explanations of Program Error MessagesProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653595(192-198)Online publication date: 3-Jul-2024

Index Terms

  1. SIDE-lib: A Library for Detecting Symptoms of Python Programming Misconceptions

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ITiCSE 2023: Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1
      June 2023
      694 pages
      ISBN:9798400701382
      DOI:10.1145/3587102
      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].

      Sponsors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 30 June 2023

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. computer science education
      2. library
      3. misconceptions
      4. novice programmers

      Qualifiers

      • Research-article

      Conference

      ITiCSE 2023
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 552 of 1,613 submissions, 34%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)58
      • Downloads (Last 6 weeks)3
      Reflects downloads up to 17 Oct 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Feedback Literacy: Holistic Analysis of Secondary Educators' Views of LLM Explanations of Program Error MessagesProceedings of the 2024 on Innovation and Technology in Computer Science Education V. 110.1145/3649217.3653595(192-198)Online publication date: 3-Jul-2024

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media