[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1109/ICSE-SEET52601.2021.00026acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

An inquisitive code editor for addressing novice programmers' misconceptions of program behavior

Published: 17 December 2021 Publication History

Abstract

Novice programmers face numerous barriers while attempting to learn how to code that may deter them from pursuing a computer science degree or career in software development. In this work, we propose a tool concept to address the particularly challenging barrier of novice programmers holding misconceptions about how their code behaves. Specifically, the concept involves an inquisitive code editor that: (1) identifies misconceptions by periodically prompting the novice programmer with questions about their program's behavior, (2) corrects the misconceptions by generating explanations based on the program's actual behavior, and (3) prevents further misconceptions by inserting test code and utilizing other educational resources. We have implemented portions of the concept as plugins for the Atom code editor and conducted informal surveys with students and instructors. Next steps include deploying the tool prototype to students enrolled in introductory programming courses.

References

[1]
A. Altadmri and N. C. Brown, "37 million compilations: Investigating novice programming mistakes in large-scale student data," in Proceedings of the 46th ACM Technical Symposium on Computer Science Education, ser. SIGCSE '15. New York, NY, USA: ACM, 2015, pp. 522--527.
[2]
B. A. Becker, "An effective approach to enhancing compiler error messages," in Proceedings of the 47th ACM Technical Symposium on Computing Science Education, ser. SIGCSE '16. New York, NY, USA: ACM, 2016, pp. 126--131.
[3]
B. A. Becker, "A new metric to quantify repeated compiler errors for novice programmers," in Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, ser. ITiCSE '16. New York, NY, USA: ACM, 2016, pp. 296--301.
[4]
N. C. Brown and A. Altadmri, "Investigating novice programming mistakes: Educator beliefs vs. student data," in Proceedings of the Tenth Annual Conference on International Computing Education Research, ser. ICER '14. New York, NY, USA: ACM, 2014, pp. 43--50.
[5]
N. C. C. Brown, M. Kölling, D. McCall, and I. Utting, "Blackbox: A large scale repository of novice programmers' activity," in Proceedings of the 45th ACM Technical Symposium on Computer Science Education, ser. SIGCSE '14. New York, NY, USA: ACM, 2014, pp. 223--228.
[6]
J. Cao, S. D. Fleming, M. Burnett, and C. Scaffidi, "Idea Garden: Situated support for problem solving by end-user programmers," Interacting with Computers, vol. 27, no. 6, pp. 640--660, Nov. 2015.
[7]
P. Denny, A. Luxton-Reilly, and D. Carpenter, "Enhancing syntax error messages appears ineffectual," in Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education, ser. ITiCSE '14. New York, NY, USA: ACM, 2014, pp. 273--278.
[8]
S. D'mello and A. Graesser, "Autotutor and affective autotutor: Learning by talking with cognitively and emotionally intelligent computers that talk back," ACM Trans. Interact. Intell. Syst., vol. 2, no. 4, pp. 23:1--23:39, Jan. 2013. [Online].
[9]
I. Drosos, P. J. Guo, and C. Parnin, "Happyface: Identifying and predicting frustrating obstacles for learning programming at scale," in 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Oct 2017, pp. 171--179.
[10]
A. Ebrahimi, "Novice programmer errors: Language constructs and plan composition," International Journal of Human Computer Studies, vol. 41, no. 4, pp. 457--480, 1994.
[11]
E. Fast, D. Steffee, L. Wang, J. R. Brandt, and M. S. Bernstein, "Emergent, crowd-scale programming practice in the ide," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '14. New York, NY, USA: ACM, 2014, pp. 2491--2500.
[12]
T. Flowers, J. Jackson, and C. Carver, "Empowering students and building confidence in novice programmers through gauntlet," in 34th Annual Frontiers in Education, 2004. FIE 2004.(FIE), vol. 00, 10 2004, pp. T3H/10--T3H/13 Vol. 1.
[13]
J. Galenson, P. Reames, R. Bodik, B. Hartmann, and K. Sen, "Codehint: Dynamic and interactive synthesis of code snippets," in Proceedings of the 36th International Conference on Software Engineering, ser. ICSE 2014. New York, NY, USA: ACM, 2014, pp. 653--663.
[14]
A. C. Graesser, P. Chipman, B. C. Haynes, and A. Olney, "Autotutor: an intelligent tutoring system with mixed-initiative dialogue," IEEE Transactions on Education, vol. 48, no. 4, pp. 612--618, Nov 2005.
[15]
P. J. Guo, J. White, and R. Zanelatto, "Codechella: Multi-user program visualizations for real-time tutoring and collaborative learning," in 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Oct 2015, pp. 79--87.
[16]
P. J. Guo, "Online python tutor: Embeddable web-based program visualization for cs education," in Proceeding of the 44th ACM Technical Symposium on Computer Science Education, ser. SIGCSE '13. New York, NY, USA: ACM, 2013, pp. 579--584.
[17]
P. J. Guo, "Codeopticon: Real-time, one-to-many human tutoring for computer programming," in Proceedings of the 28th Annual ACM Symposium on User Interface Software & Technology, ser. UIST '15. New York, NY, USA: ACM, 2015, pp. 599--608.
[18]
K. J. Harms, D. Cosgrove, S. Gray, and C. Kelleher, "Automatically generating tutorials to enable middle school children to learn programming independently," in Proceedings of the 12th International Conference on Interaction Design and Children, ser. IDC '13. New York, NY, USA: ACM, 2013, pp. 11--19.
[19]
B. Hartmann, D. MacDougall, J. Brandt, and S. R. Klemmer, "What would other programmers do: Suggesting solutions to error messages," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '10. New York, NY, USA: ACM, 2010, pp. 1019--1028. [Online].
[20]
A. Head, C. Appachu, M. A. Hearst, and B. Hartmann, "Tutorons: Generating context-relevant, on-demand explanations and demonstrations of online code," in 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Oct 2015, pp. 3--12.
[21]
A. Z. Henley and S. D. Fleming, "Yestercode: Improving code-change support in visual dataflow programming environments," in Proc. IEEE Symposium on Visual Languages and Human-Centric Computing, ser. VL/HCC '16, 2016, pp. 106--114.
[22]
A. Z. Henley and S. D. Fleming, "CodeDeviant: Helping programmers detect edits that accidentally alter program behavior," in Proc. IEEE Symposium on Visual Languages and Human-Centric Computing, ser. VL/HCC '18, 2018.
[23]
J. Hoffswell, A. Satyanarayan, and J. Heer, "Augmenting code with in situ visualizations to aid program understanding," in Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, ser. CHI '18. New York, NY, USA: ACM, 2018, pp. 532:1--532:12. [Online].
[24]
M. Hristova, A. Misra, M. Rutter, and R. Mercuri, "Identifying and correcting java programming errors for introductory computer science students," in Proceedings of the 34th SIGCSE Technical Symposium on Computer Science Education, ser. SIGCSE '03. New York, NY, USA: ACM, 2003, pp. 153--156.
[25]
M. Ichinco, W. Hnin, and C. Kelleher, "Suggesting examples to novice programmers in an open-ended context with the example guru," in 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Sept 2016, pp. 230--231.
[26]
M. Ichinco, W. Y. Hnin, and C. L. Kelleher, "Suggesting api usage to novice programmers with the example guru," in Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, ser. CHI '17. New York, NY, USA: ACM, 2017, pp. 1105--1117.
[27]
M. Ichinco and C. Kelleher, "Semi-automatic suggestion generation for young novice programmers in an open-ended context," in Proceedings of the 17th ACM Conference on Interaction Design and Children, ser. IDC '18. New York, NY, USA: ACM, 2018, pp. 405--412.
[28]
J. Jackson, M. Cobb, and C. Carver, "Identifying top java errors for novice programmers," in Proceedings Frontiers in Education 35th Annual Conference, Oct 2005, pp. T4C--T4C.
[29]
W. Jernigan, A. Horvath, M. Lee, M. Burnett, T. Cuilty, S. Kuttal, A. Peters, I. Kwan, F. Bahmani, and A. Ko, "A principled evaluation for a principled Idea Garden," in Proc. 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC '15), Oct. 2015, pp. 235--243.
[30]
H. Kang and P. J. Guo, "Omnicode: A novice-oriented live programming environment with always-on run-time value visualizations," in Proceedings of the 30th Annual ACM Symposium on User Interface Software and Technology, ser. UIST '17. New York, NY, USA: ACM, 2017, pp. 737--745.
[31]
A. J. Ko and B. A. Myers, "Designing the whyline: A debugging interface for asking questions about program behavior," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '04. New York, NY, USA: ACM, 2004, pp. 151--158.
[32]
A. J. Ko and B. A. Myers, "Debugging reinvented: Asking and answering why and why not questions about program behavior," in Proceedings of the 30th International Conference on Software Engineering, ser. ICSE '08. New York, NY, USA: ACM, 2008, pp. 301--310. [Online].
[33]
A. J. Ko and B. A. Myers, "Finding causes of program output with the java whyline," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '09. New York, NY, USA: ACM, 2009, pp. 1569--1578.
[34]
Y. B.-D. Kolikant, "Students' alternative standards for correctness," in Proceedings of the First International Workshop on Computing Education Research, ser. ICER '05. New York, NY, USA: ACM, 2005, pp. 37--43.
[35]
T. Lieber, J. R. Brandt, and R. C. Miller, "Addressing misconceptions about code with always-on programming visualizations," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '14. New York, NY, USA: ACM, 2014, pp. 2481--2490.
[36]
J. Maloney, M. Resnick, N. Rusk, B. Silverman, and E. Eastmond, "The scratch programming language and environment," Trans. Comput. Educ., vol. 10, no. 4, pp. 16:1--16:15, Nov. 2010.
[37]
D. C. McFarlane, "Comparison of four primary methods for coordinating the interruption of people in human-computer interaction," HumanComputer Interaction, vol. 17, no. 1, pp. 63--139, 2002.
[38]
D. Mujumdar, M. Kallenbach, B. Liu, and B. Hartmann, "Crowdsourcing suggestions to programming problems for dynamic web development languages," in CHI '11 Extended Abstracts on Human Factors in Computing Systems, ser. CHI EA '11. New York, NY, USA: ACM, 2011, pp. 1525--1530.
[39]
S. C. Müller and T. Fritz, "Stuck and frustrated or in flow and happy: Sensing developers' emotions and progress," in 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 1, May 2015, pp. 688--699.
[40]
G. L. Nelson, B. Xie, and A. J. Ko, "Comprehension first: Evaluating a novel pedagogy and tutoring system for program tracing in cs1," in Proceedings of the 2017 ACM Conference on International Computing Education Research, ser. ICER '17. New York, NY, USA: ACM, 2017, pp. 2--11.
[41]
M.-H. Nienaltowski, M. Pedroni, and B. Meyer, "Compiler error messages: What can help novices?" in Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education, ser. SIGCSE '08. New York, NY, USA: ACM, 2008, pp. 168--172.
[42]
S. Oney and J. Brandt, "Codelets: Linking interactive documentation and example code in the editor," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '12. New York, NY, USA: ACM, 2012, pp. 2697--2706.
[43]
B. Peddycord III, A. Hicks, and T. Barnes, "Generating hints for programming problems using intermediate output," in Educational Data Mining 2014. Citeseer, 2014.
[44]
R. S. Pettit, J. Homer, and R. Gee, "Do enhanced compiler error messages help students?: Results inconclusive." in Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, ser. SIGCSE '17. New York, NY, USA: ACM, 2017, pp. 465--470.
[45]
J. Prather, R. Pettit, K. H. McMurry, A. Peters, J. Homer, N. Simone, and M. Cohen, "On novices' interaction with compiler error messages: A human factors approach," in Proceedings of the 2017 ACM Conference on International Computing Education Research, ser. ICER '17. New York, NY, USA: ACM, 2017, pp. 74--82.
[46]
Y. Qian and J. Lehman, "Students' misconceptions and other difficulties in introductory programming: A literature review," ACM Trans. Comput. Educ., vol. 18, no. 1, pp. 1:1--1:24, Oct. 2017.
[47]
M. M. T. Rodrigo and R. S. Baker, "Coarse-grained detection of student frustration in an introductory programming course," in Proceedings of the fifth international workshop on Computing education research workshop. ACM, 2009, pp. 75--80.
[48]
S. C. Shaffer, "Ludwig: An online programming tutoring and assessment system," SIGCSE Bull., vol. 37, no. 2, pp. 56--60, Jun. 2005.
[49]
J. C. Spohrer and E. Soloway, "Novice mistakes: Are the folk wisdoms correct?" Commun. ACM, vol. 29, no. 7, pp. 624--632, Jul. 1986. [Online].
[50]
I. Stamouli and M. Huggard, "Object oriented programming and program correctness: The students' perspective," in Proceedings of the Second International Workshop on Computing Education Research, ser. ICER '06. New York, NY, USA: ACM, 2006, pp. 109--118. [Online].
[51]
R. Suzuki, G. Soares, A. Head, E. Glassman, R. Reis, M. Mongiovi, L. D'Antoni, and B. Hartmann, "Tracediff: Debugging unexpected code behavior using trace divergences," in 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Oct 2017, pp. 107--115.
[52]
J. Warner and P. J. Guo, "Codepilot: Scaffolding end-to-end collaborative software development for novice programmers," in Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, ser. CHI '17. New York, NY, USA: ACM, 2017, pp. 1136--1141.
[53]
C. Watson, F. W. Li, and J. L. Godwin, "Bluefix: using crowd-sourced feedback to support programming students in error diagnosis and repair," in International Conference on Web-Based Learning. Springer, 2012, pp. 228--239.
[54]
A. Wilson, M. Burnett, L. Beckwith, O. Granatir, L. Casburn, C. Cook, M. Durham, and G. Rothermel, "Harnessing curiosity to increase correctness in end-user programming," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, ser. CHI '03. New York, NY, USA: ACM, 2003, pp. 305--312. [Online].
[55]
D. Wolber, H. Abelson, E. Spertus, and L. Looney, App Inventor. " O'Reilly Media, Inc.", 2011.

Cited By

View all
  • (2024)Beyond Functional Correctness: An Exploratory Study on the Time Efficiency of Programming AssignmentsProceedings of the 46th International Conference on Software Engineering: Software Engineering Education and Training10.1145/3639474.3640065(320-330)Online publication date: 14-Apr-2024
  • (2023)Jinter: A Hint Generation System for Java ExercisesProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 110.1145/3587102.3588820(375-381)Online publication date: 29-Jun-2023
  • (2023)Automated Questionnaires About Students’ JavaScript Programs: Towards Gauging Novice Programming ProcessesProceedings of the 25th Australasian Computing Education Conference10.1145/3576123.3576129(49-58)Online publication date: 30-Jan-2023
  • Show More Cited By

Index Terms

  1. An inquisitive code editor for addressing novice programmers' misconceptions of program behavior
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ICSE-JSEET '21: Proceedings of the 43rd International Conference on Software Engineering: Joint Track on Software Engineering Education and Training
      May 2021
      317 pages
      ISBN:9780738133201

      Sponsors

      In-Cooperation

      • IEEE CS

      Publisher

      IEEE Press

      Publication History

      Published: 17 December 2021

      Check for updates

      Author Tags

      1. code editor
      2. novice programmers
      3. program comprehension

      Qualifiers

      • Research-article

      Conference

      ICSE '21
      Sponsor:

      Upcoming Conference

      ICSE 2025

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)4
      • Downloads (Last 6 weeks)1
      Reflects downloads up to 04 Jan 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)Beyond Functional Correctness: An Exploratory Study on the Time Efficiency of Programming AssignmentsProceedings of the 46th International Conference on Software Engineering: Software Engineering Education and Training10.1145/3639474.3640065(320-330)Online publication date: 14-Apr-2024
      • (2023)Jinter: A Hint Generation System for Java ExercisesProceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 110.1145/3587102.3588820(375-381)Online publication date: 29-Jun-2023
      • (2023)Automated Questionnaires About Students’ JavaScript Programs: Towards Gauging Novice Programming ProcessesProceedings of the 25th Australasian Computing Education Conference10.1145/3576123.3576129(49-58)Online publication date: 30-Jan-2023
      • (2022)A DSL and model transformations to specify learning corpora for modeling assistantsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3550356.3556502(95-102)Online publication date: 23-Oct-2022
      • (2022)Using Annotations for Sensemaking About CodeProceedings of the 35th Annual ACM Symposium on User Interface Software and Technology10.1145/3526113.3545667(1-16)Online publication date: 29-Oct-2022
      • (2022)Exploring the Learnability of Program Synthesizers by Novice ProgrammersProceedings of the 35th Annual ACM Symposium on User Interface Software and Technology10.1145/3526113.3545659(1-15)Online publication date: 29-Oct-2022
      • (2022)JaskProceedings of the 27th ACM Conference on on Innovation and Technology in Computer Science Education Vol. 110.1145/3502718.3524761(117-123)Online publication date: 7-Jul-2022

      View Options

      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