Skip to main content

Common Code Writing Errors Made by Novice Programmers: Implications for the Teaching of Introductory Programming

  • Conference paper
  • First Online:
ICT Education (SACLA 2021)

Abstract

Novices tend to make unnecessary errors when they write programming code. Many of these errors can be attributed to the novices’ fragile knowledge of basic programming concepts. Programming instructors also find it challenging to develop teaching and learning strategies that are aimed at addressing the specific programming challenges experienced by their students. This paper reports on a study aimed at (1) identifying the common programming errors made by a select group of novice programmers, and (2) analyzing how these common errors changed at different stages during an academic semester. This exploratory study employed a mixed-methods approach based on the Framework of Integrated Methodologies (FraIM). Manual, structured content analysis of 684 programming artefacts, created by 38 participants and collected over an entire semester, lead to the identification of 21 common programming errors. The identified errors were classified into four categories: syntax, semantic, logic, and type errors. The results indicate that semantic and type errors occurred most frequently. Although common error categories are likely to remain the same from one assignment to the next, the introduction of more complex programming concepts towards the end of the semester could lead to an unexpected change in the most common error category. Knowledge of these common errors and error categories could assist programming instructors in adjusting their teaching and learning approaches for novice programmers.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Ahadi, A., Lister, R., Lal, S., Hellas, A.: Learning programming, syntax errors and institution-specific factors. In: Proceedings of the 20th Australasian Computing Education Conference, pp. 90–96. ACM, New York (2018). https://doi.org/10.1145/3160489.3160490

  2. Albrecht, E., Grabowski, J.: Sometimes it's just sloppiness-studying students’ programming errors and misconceptions. In: Proceedings of the 51st ACM Technical Symposium on Computer Science Education, pp. 340–345. ACM, New York (2020). https://doi.org/10.1145/3328778.3366862

  3. Alqadi, B.S., Maletic, J.I.: An empirical study of debugging patterns among novice programmers. In: Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, pp. 15–20. ACM, New York (2017). https://doi.org/10.1145/3017680.3017761

  4. Altadmri, A., Brown, N.C.C.: 37 million compilations: investigating novice programming mistakes in large-scale student data. In: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, pp. 522–527. ACM, New York (2015). https://doi.org/10.1145/2676723.2677258

  5. Altadmri, A., Kölling, M., Brown, N.C.C.: The cost of syntax and how to avoid it: text versus frame-based editing. In: Proceedings of the 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC), pp. 748–753. IEEE (2016). https://doi.org/10.1109/COMPSAC.2016.204

  6. Alzahrani, N., Vahid, F., Edgcomb, A., Lysecky, R., Lysecky, S.: An analysis of common errors leading to excessive student struggle on homework problems in an introductory programming course. In: Proceedings of ASEE Annual Conference. ASEE, Riverside (2018)

    Google Scholar 

  7. Becker, B.A., et al.: Unexpected tokens: a review of programming error messages and design guidelines for the future. In: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, pp. 253–254. ACM, New York (2019). https://doi.org/10.1145/3304221.3325539

  8. Becker, B.A., Mooney, C.: Categorizing compiler error messages with principal component analysis. In: Proceedings of the 12th China-Europe International Symposium on Software Engineering Education (CEISEE 2016), pp. 28–29. CEISEE, Shenyang (2016)

    Google Scholar 

  9. Becker, B.A.: An effective approach to enhancing compiler error messages. In: Proceedings of the 47th ACM Technical Symposium on Computing Science Education, pp. 126–131. ACM, New York (2016). https://doi.org/10.1145/2839509.2844584

  10. Brass, S., Goldberg, C.: Semantic errors in SQL queries: a quite complete list. J. Syst. Softw. 79(5), 630–644 (2006). https://doi.org/10.1016/j.jss.2005.06.028

    Article  Google Scholar 

  11. Bosse, Y., Redmiles, D., Gerosa, M.A.: Pedagogical content for professors of introductory programming courses. In: Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education, pp. 429–435. ACM, New York (2019). https://doi.org/10.1145/3304221.3319776

  12. Brown, N.C., Altadmri, A.: Investigating novice programming mistakes: Educator beliefs vs. student data. In: Proceedings of the 10th Annual Conference on International Computing Education Research, pp. 43–50. ACM, New York (2014). https://doi.org/10.1145/2632320.2632343

  13. Canedo, E.D., Santos, G.A., Leite, L.L.: An assessment of the teaching-learning methodologies used in the introductory programming courses at a Brazilian university. Inform. Educ. 17(1), 45–59 (2018). https://doi.org/10.15388/infedu.2018.03

    Article  Google Scholar 

  14. Denny, P., Luxton-Reilly, A., Carpenter, D.: Enhancing syntax error messages appears ineffectual. In: Proceedings of the 2014 Conference on Innovation and Technology In Computer Science Education, pp. 273–278. ACM, New York (2014). https://doi.org/10.1145/2591708.2591748

  15. Denny, P., Luxton, R.A., Tempero, E.: All syntax errors are not equal. In: Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Education, pp. 75–80. ACM, New York (2012). https://doi.org/10.1145/2325296.2325318

  16. Ettles, A., Luxton-Reilly, A., Denny, P.: Common logic errors made by novice programmers. In: Proceedings of the 20th Australasian Computing Education Conference, pp. 83–89. ACM, New York (2018). https://doi.org/10.1145/3160489.3160493

  17. Farrokhi, F., Mahmoudi-Hamidabad, A.: Rethinking convenience sampling: defining quality criteria. Theory Pract. Lang. Stud. 2(4), 784–792 (2012). https://doi.org/10.4304/tpls.2.4.784-792

    Article  Google Scholar 

  18. Figueiredo, J., Lopes, N., García-Peñalvo, F.J.: Predicting student failure in an introductory programming course with multiple back-propagation. In: Proceedings of the 7th International Conference on Technological Ecosystems for Enhancing Multiculturality, pp. 44–49. ACM, New York (2019). https://doi.org/10.1145/3362789.3362925

  19. Hristova, M., Misra, A., Rutter, M., Mercuri, R.: Identifying and correcting Java programming errors for introductory computer science students. ACM SIGCSE Bull. 35(1), 153–156 (2003). https://doi.org/10.1145/611892.611956

    Article  Google Scholar 

  20. Johnson, W.L.: Understanding and debugging novice programs. Artif. Intell. 42(1), 51–97 (1990). https://doi.org/10.1016/0004-3702(90)90094-G

    Article  Google Scholar 

  21. Jackson, J., Cobb, M., Carver, C.: Identifying top Java errors for novice programmers. In: Proceedings Frontiers in Education 35th Annual Conference, p. T4C. IEEE, Indianapolis (2005). https://doi.org/10.1109/FIE.2005.1611967

  22. Kazeem, O.N., Abiola, O.A., Akinola, S.O.: Bug pattern analysis of codes produced by beginner programmers using association rule mining technique. Univ. Ibadan J. Sci. Logics ICT Res. 4(1), 10–24 (2020)

    Google Scholar 

  23. Koerber, A., McMichael, L.: Qualitative sampling methods: a primer for technical communicators. J. Bus. Tech. Commun. 22(4), 454–473 (2008). https://doi.org/10.1177/1050651908320362

    Article  Google Scholar 

  24. Lakkaraju, H., et al.: A machine learning framework to identify students at risk of adverse academic outcomes. In: Proceedings of the 21st ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1909–1918. ACM, New York (2015). https://doi.org/10.1145/2783258.2788620

  25. Malik, S.I., Mathew, R., Hammood, M.M.: PROBSOL: a web-based application to develop problem-solving skills in introductory programming. In: Al-Masri, A., Curran, K. (eds.) Smart Technologies and Innovation for a Sustainable Future. ASTI, pp. 295–302. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-01659-3_34

    Chapter  Google Scholar 

  26. Malik, S.I., Mathew, R., Al-Nuaimi, R., Al-Sideiri, A., Coldwell-Neilson, J.: Learning problem solving skills: comparison of E-learning and M-learning in an introductory programming course. Educ. Inf. Technol. 24(5), 2779–2796 (2019). https://doi.org/10.1007/s10639-019-09896-1

    Article  Google Scholar 

  27. McCall, D., Kölling, M.: A new look at novice programmer errors. ACM Trans. Comput. Educ. 19(4), 1–30 (2019). https://doi.org/10.1145/3335814

    Article  Google Scholar 

  28. McCall, D., Kölling, M.: Meaningful categorisation of novice programmer errors. In: 2014 IEEE Frontiers in Education Conference (FIE) Proceedings, pp. 1–8. IEEE (2014). https://doi.org/10.1109/FIE.2014.7044420

  29. Plonka, L., Sharp, H., Van der Linden, J., Dittrich, Y.: Knowledge transfer in pair programming: an in-depth analysis. Int. J. Hum. Comput. Stud. 73, 66–78 (2015). https://doi.org/10.1016/j.ijhcs.2014.09.001

    Article  Google Scholar 

  30. Plowright, D.: Using Mixed Methods: Frameworks for an Integrated Methodology. SAGE, London (Kindle edition) (2011)

    Google Scholar 

  31. Qian, Y., Lehman, J.: An investigation of high school students’ errors in introductory programming: a data-driven approach. J. Educ. Comput. Res. 58(5), 919–945 (2020). https://doi.org/10.1177/0735633119887508

    Article  Google Scholar 

  32. Rahman, M., Watanobe, Y., Nakamura, K.: Source code assessment and classification based on estimated error probability using attentive LSTM language model and its application in programming education. Appl. Sci. 10(8), 2973 (2020). https://doi.org/10.3390/app10082973

    Article  Google Scholar 

  33. Robins, A.V.: Novice programmers and introductory programming. In: Fincher, S., Robins, A. (eds.) The Cambridge Handbook of Computing Education Research, pp. 327–376. Cambridge University Press, Cambridge (2019)

    Chapter  Google Scholar 

  34. Schliep, P.A.: Usability of error messages for introductory students. Sch. Horiz. Univ. Minn. Morris Undergrad. J. 2(2), 5–11 (2015)

    Google Scholar 

  35. Smith, R., Rixner, S.: The error landscape: characterizing the mistakes of novice programmers. In: Proceedings of the 50th ACM Technical Symposium on Computer Science Education, pp. 538–544. ACM, New York (2019). https://doi.org/10.1145/3287324.3287394

  36. Steenmeijer, L.D.: Increasing the consistency of feedback on programming code by using a tagging system (Bachelor's thesis). University of Twente, Twente (2020). http://essay.utwente.nl/82198/

  37. Tabanao, E.S., Rodrigo, M.M.T., Jadud, M.C.: Identifying at-risk novice java programmers through the analysis of online protocols. In: Proceedings of Philippine Computing Science Congress, pp. 1–8. Archīum Ateneo (2008)

    Google Scholar 

  38. Türkmen, G., Caner, S.: The investigation of novice programmers’ debugging behaviors to inform intelligent e-learning environments: a case study. Turkish Online J. Dist. Educ. 21(3), 142–155 (2020). https://doi.org/10.17718/tojde.762039

    Article  Google Scholar 

  39. Tuugalei, I., Mow, I.C.: Analyses of student programming errors in java programming courses. J. Emerg. Trends Comput. Inf. Sci. 3(5), 739–749 (2012)

    Google Scholar 

  40. Zehetmeier, D., Böttcher, A., Brüggemann-Klein, A., Thurner, V.: Development of a classification scheme for errors observed in the process of computer programming education. In: Proceedings of the 1st International Conference on Higher Education Advances (Head 2015), pp. 475–484. Universitat Politècnica de València, València (2015). https://doi.org/10.4995/HEAd15.2015.356

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Liezel Nel .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Mase, M.B., Nel, L. (2022). Common Code Writing Errors Made by Novice Programmers: Implications for the Teaching of Introductory Programming. In: Leung, W.S., Coetzee, M., Coulter, D., Cotterrell, D. (eds) ICT Education. SACLA 2021. Communications in Computer and Information Science, vol 1461. Springer, Cham. https://doi.org/10.1007/978-3-030-95003-3_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-95003-3_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-95002-6

  • Online ISBN: 978-3-030-95003-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics