skip to main content
10.1145/3501709.3544277acmconferencesArticle/Chapter ViewAbstractPublication PagesicerConference Proceedingsconference-collections
poster

Designing a Supportive IDE to Help Novices Recognise and Recover from Programming Misconceptions

Published: 07 August 2022 Publication History

Abstract

Popular Integrated Development Environments (IDEs) provide features such as syntax highlighting, warnings, and error messages to help programmers find and fix bugs and write cleaner code. Although these tools are available to programmers of all levels, they are designed with the assumption that IDE users know how to code. We present a new project to develop IDE features for novice programmers who may have missing, incomplete, or incorrect understanding of the code constructs they use. We are developing tools for mainstream IDEs that help learners diagnose and recover from misconceptions.
Several purpose-build IDEs are available for novices e.g. [2, 8, 12, 17]. Although these tools can be effective, they typically lack the rich features of standard IDEs [18]. One argument for the use of specialised IDEs is that the complexity of standard IDEs can overwhelm beginners. However, research has shown that this may not be the case [18]. Like [10], we believe that embedding support for novices directly in existing IDEs is a promising research direction.
We have built a library to detect 18 task-independent symptoms of misconceptions in Python code. Where prior work has focused on identifying and categorising errors e.g. [1, 3, 4, 7, 9, 11, 13, 14, 16], we focus instead on the detection of symptoms, where symptoms are patterns in statements or blocks of code that indicate a possible misconception. This is similar to the notion of constraints in constraint-based modelling [15]. We distinguish symptoms from misconceptions because different misconceptions may exhibit the same symptoms. For example, an undefined variable is a symptom. Depending on the presence of other symptoms, it could indicate a misconception about variable values or scope, syntax of function calls, or it could just be a typo. Symptoms are also distinct from errors as misconceptions may be apparent in code that produces correct output.
The symptoms were derived from analysis of a dataset of 1332 Python programs written in an introductory programming course. Expanding the focus from errors to the broader concept of symptoms gave us a novel view of beginners’ misconceptions. A finding of particular interest was that four of the five most frequent and persistent symptoms in our dataset signalled clear misconceptions but did not lead to errors, meaning they would be missed by analyses focusing on mistakes. Three of those four are not picked up by existing IDE features, which suggests they are good targets for our design work.
Our library enables us to automatically detect symptoms of misconceptions; next comes the more challenging task of designing interventions to help learners recognise, understand, and recover from those misconceptions. Guided by existing design recommendations [5, 6, 10], we have begun to explore how the built-in capabilities of popular IDEs can be extended. To support the design process, we are conducting a diary study with beginner programmers to gain insight into how they monitor and assess their own understanding of programming concepts. This will be followed by a co-design workshop to inform the design of new IDE features.

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]
Aivar Annamaa. 2015. Introducing Thonny, A Python IDE For Learning Programming. In Proceedings of the 15th Koli Calling Conference on Computing Education Research(Koli Calling ’15). ACM, Koli, Finland, 117–121. https://doi.org/10.1145/2828959.2828969
[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]
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
[5]
Paul Denny, James Prather, and Brett A. Becker. 2020. Error Message Readability and Novice Debugging Performance. In Proceedings of the 2020 ACM Conference on Innovation and Technology in Computer Science Education(ITiCSE ’20). ACM, Trondheim, Norway. https://doi.org/10.1145/3341525.3387384
[6]
Paul Denny, James Prather, Brett A. Becker, Catherine Mooney, John Homer, Zachary C. Albrecht, and Garrett B. Powell. 2021. On Designing Programming Error Messages for Novices: Readability and its Constituent Factors. In Proceedings of the 2021 CHI Conference on Human Factors in Computing Systems(CHI ’21). ACM, Yokohama, Japan. https://doi.org/10.1145/3411764.3445696
[7]
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.
[8]
Paul Gross and Kris Powers. 2005. Evaluating Assessments of Novice Programming environments. In Proceedings of the 2005 International Workshop on Computing Education Research(ICER ’05). ACM, Seattle, WA, USA, 99–110. https://doi.org/10.1145/1089786.1089796
[9]
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
[10]
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 Transactions on Computing Education 17, 3 (2017), 1–26. https://doi.org/10.1145/3105759
[11]
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
[12]
Michael Kölling, Bruice Quig, Andrew Patterson, and John Rosenberg. 2003. The BlueJ System and its Pedagogy. Computer Science Education 13, 4 (2003), 249–268. https://doi.org/10.1076/csed.13.4.249.17496
[13]
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
[14]
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
[15]
Antonija Mitrovic. 2012. Fifteen Years of Constraint-Based Tutors: What We Have Achieved And Where We Are Going. User Modelling and User-Adapted Interaction1-2 (2012), 39–72. https://doi.org/10.1007/s11257-011-9105-9
[16]
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
[17]
Carnegie Mellon University. 2020. Alice. Retrieved May 26, 2022 from http://www.alice.org
[18]
Arto Vihavainen, Juha Helminen, and Petri Ihantola. 2014. How Novices Tackle Their First Lines of Code In An IDE: Analysis of Programming Session Traces. In Proceedings of the 14th Koli Calling International Conference on Computing Education Research(Koli Calling, ’14). ACM, Koli, Finland, 109–116. https://doi.org/10.1145/2674683.2674692

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICER '22: Proceedings of the 2022 ACM Conference on International Computing Education Research - Volume 2
August 2022
57 pages
ISBN:9781450391955
DOI:10.1145/3501709
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 August 2022

Check for updates

Author Tags

  1. computer science education
  2. novice programmers

Qualifiers

  • Poster
  • Research
  • Refereed limited

Conference

ICER 2022
Sponsor:
ICER 2022: ACM Conference on International Computing Education Research
August 7 - 11, 2022
Lugano and Virtual Event, Switzerland

Acceptance Rates

Overall Acceptance Rate 189 of 803 submissions, 24%

Upcoming Conference

ICER 2025
ACM Conference on International Computing Education Research
August 3 - 6, 2025
Charlottesville , VA , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 133
    Total Downloads
  • Downloads (Last 12 months)19
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

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

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media