Research Article

Factors Contributing to the Difficulties in Teaching and Learning of Computer Programming: A Literature Review

Chin Soon Cheah 1 *
More Detail
1 School of Educational Studies, Universiti Sains Malaysia, 11800, USM Penang, Malaysia* Corresponding Author
Contemporary Educational Technology, 12(2), October 2020, ep272, https://doi.org/10.30935/cedtech/8247
OPEN ACCESS   16749 Views   14960 Downloads
Download Full Text (PDF)

ABSTRACT

This paper reviews the literature relating to the factors that contribute to the difficulties in learning of computer programming. Programming has been a difficult subject to learn and master even at the early stage of education. It has been a global problem and continues to worsen at the local level. Although, there are many education tools available to complement the teaching and learning of computer programming. The problem persists until present day. Even at the initial stage of computer introduction courses, there were high failure rates and high drop out. One of the rationalism behind this scenario is from the students’ lack of problem solving abilities. However, the problem does not only lie within the students’ level of efficacy. It involves the effective use of teaching and learning material as well. Therefore, the focus of this review is on the factors concerning the students learning method and the effectiveness of the teaching material. Based on plethora of literature review, it is vital that these two aspects need to be consider simultaneously to overcome the difficulties of learning computer programming. A much more comprehensive, effective and universal teaching and learning tools need to be design to address the severity of this problem.

CITATION (APA)

Cheah, C. S. (2020). Factors Contributing to the Difficulties in Teaching and Learning of Computer Programming: A Literature Review. Contemporary Educational Technology, 12(2), ep272. https://doi.org/10.30935/cedtech/8247

REFERENCES

  1. Aissa, M., Al-Kalbani, M., Al-Hatali, S., & BinTouq, A. (2020). Novice Learning Programming Languages in Omani Higher Education Institution (Nizwa University) Issues, Challenges and Solutions Sustainable Development and Social Responsibility—Volume 2 (pp. 143-148): Springer. https://doi.org/10.1007/978-3-030-32902-0_18
  2. Baser, M. (2013). Attitude, Gender and Achievement in Computer Programming. Online Submission. https://doi.org/10.5829/idosi.mejsr.2013.14.2.2007
  3. Bennedsen, J., & Caspersen, M. E. (2005). Revealing the programming process. Paper presented at the ACM SIGCSE Bulletin. https://doi.org/10.1145/1047344.1047413
  4. Bonar, J., & Soloway, E. (1985). Preprogramming knowledge: A major source of misconceptions in novice programmers. Human–Computer Interaction, 1(2), 133-161. https://doi.org/10.1207/s15327051hci0102_3
  5. Bonar, J., & Soloway, E. (1989). Preprogramming Knowledge: A Major Source of Misconceptions in Novice. https://doi.org/10.1207/s15327051hci0102_3
  6. Bosse, Y., & Gerosa, M. A. (2017). Why is programming so difficult to learn? Patterns of Difficulties Related to Programming Learning Mid-Stage. ACM SIGSOFT Software Engineering Notes, 41(6), 1-6. https://doi.org/10.1145/3011286.3011301
  7. Boulay, B. D. (1986). Some difficulties of learning to program. Journal of Educational Computing Research, 2(1), 57-73. https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9
  8. Boulay, B. D. (2013). Some difficulties of learning to program. Studying the Novice Programmer, 283. https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9
  9. Brown, N. C., & Wilson, G. (2018). Ten quick tips for teaching programming. PLoS computational biology, 14(4). https://doi.org/10.1371/journal.pcbi.1006023
  10. Byrne, P., & Lyons, G. (2001). The effect of student attributes on success in programming. SIGCSE Bull., 33(3), 49-52. https://doi.org/10.1145/507758.377467
  11. Cañas, J. J., Bajo, M. T., & Gonzalvo, P. (1994). Mental models and computer programming. International Journal of Human-Computer Studies, 40(5), 795-811. https://doi.org/10.1006/ijhc.1994.1038
  12. Cheah, C. S. (2019). Screencasting: how effective is it in developing positive attitude towards the learning of C++ computer programming. Journal of Educational Sciences & Psychology, 9(2). Retrieved from http://jesp.upg-ploiesti.ro/index.php?option=com_phocadownload&view=file&id=553:screencasting-how-effective-is-it-in-developing-positive-attitude-towards-the-learning-of-c-computer-programming&Itemid=16
  13. Chetty, J., & Barlow-Jones, G. (2014). Novice Students and Computer Programming: Toward Constructivist Pedagogy. Mediterranean Journal of Social Sciences, 5(14), 240. https://doi.org/10.5901/mjss.2014.v5n14p240
  14. Chetty, J., & van der Westhuizen, D. (2014). Implementing Metacognition Skills for Learners Studying Computer Programming. Paper presented at the EdMedia: World Conference on Educational Media and Technology. Retrieved from https://www.learntechlib.org/primary/p/147775/
  15. Dale, N., & Weems, C. (2005). Programming and problem solving with C++. Boston: Jones & Bartlett Learning.
  16. Dale, N., & Weems, C. (2013). Programming and Problem Solving with C++: Comprehensive: Jones & Bartlett Publishers.
  17. Davies, S. P. (1993). Models and theories of programming strategy. International Journal of Man-Machine Studies, 39(2), 237-267. https://doi.org/10.1006/imms.1993.1061
  18. Du Boulay, B., O’Shea, T., & Monk, J. (1981). The black box inside the glass box: presenting computing concepts to novices. International Journal of Man-Machine Studies, 14(3), 237-249. https://doi.org/10.1016/S0020-7373(81)80056-9
  19. Gomes, A., Carmo, L., Bigotte, E., & Mendes, A. (2006). Mathematics and programming problem solving. Paper presented at the 3rd E-Learning Conference–Computer Science Education. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.532.7543&rep=rep1&type=pdf
  20. Gomes, A., & Mendes, A. J. (2007). Learning to program-difficulties and solutions. Paper presented at the International Conference on Engineering Education–ICEE. Retrieved from https://www.researchgate.net/profile/Anabela_Gomes2/publication/228328491_Learning_to_program__difficulties_and_solutions/links/02e7e52389017b9984000000.pdf
  21. Hoc, J.-M. (1984). Do we really have conditional statements in our brains? Readings on Cognitive Ergonomics—Mind and Computers (pp. 92-101): Springer. https://doi.org/10.1007/3-540-13394-1_8
  22. Holvikivi, J. (2010). Conditions for successful learning of programming skills Key competencies in the knowledge society (pp. 155-164): Springer. https://doi.org/10.1007/978-3-642-15378-5_15
  23. Ismail, M. N., Ngah, N. A., & Umar, I. N. (2010a). The effects of mind mapping with cooperative learning on programming performance, problem solving skill and metacognitive knowledge among computer science students. Journal of Educational Computing Research, 42(1), 35-61. https://doi.org/10.2190/EC.42.1.b
  24. Ismail, M. N., Ngah, N. A., & Umar, I. N. (2010b). Instructional strategy in the teaching of computer programming: A need assessment analyses. TOJET, 9(2), 125-131. Retrieved from http://tojet.net/articles/v9i2/9214.pdf
  25. Jain, Y., & Sidhu, G. K. (2013). Relationship between anxiety, attitude and motivation of tertiary students in learning English as a second language. Procedia-Social and Behavioral Sciences, 90, 114-123. Retrieved from https://doi.org/10.1016/j.sbspro.2013.07.072
  26. Jenkins, T. (2002). On the difficulty of learning to program. Paper presented at the Proceedings of the 3rd Annual Conference of the LTSN Centre for Information and Computer Sciences. Retrieved from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.596.9994&rep=rep1&type=pdf
  27. Jiau, H. C., Chen, J. C., & Ssu, K.-F. (2009). Enhancing self-motivation in learning programming using game-based simulation and metrics. IEEE Transactions on Education, 52(4), 555-562. https://doi.org/10.1109/TE.2008.2010983
  28. Kunkle, W. M., & Allen, R. B. (2016). The impact of different teaching approaches and languages on student learning of introductory programming concepts. ACM Transactions on Computing Education (TOCE), 16(1), 1-26. https://doi.org/10.1145/2785807
  29. Luxton-Reilly, A. (2016). Learning to program is easy. Paper presented at the Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education. https://doi.org/10.1145/2899415.2899432
  30. McGill, T. J., & Volet, S. E. (1997). A conceptual framework for analyzing students’ knowledge of programming. Journal of research on Computing in Education, 29(3), 276-297. https://doi.org/10.1080/08886504.1997.10782199
  31. Moser, R. (1997). A fantasy adventure game as a learning environment: why learning to program is so difficult and what can be done about it. Paper presented at the ACM SIGCSE Bulletin. https://doi.org/10.1145/268819.268853
  32. Ng, E., & Bereiter, C. (1991). Three levels of goal orientation in learning. Journal of the Learning Sciences, 1(3-4), 243-271. https://doi.org/10.1080/10508406.1991.9671972
  33. Papadakis, S., Kalogiannakis, M., Orfanakis, V., & Zaranis, N. (2014). Novice programming environments. Scratch & app inventor: a first comparison. Paper presented at the Proceedings of the 2014 workshop on interaction design in educational environments. https://doi.org/10.1145/2643604.2643613
  34. Papadakis, S., Kalogiannakis, M., & Zaranis, N. (2016). Developing fundamental programming concepts and computational thinking with ScratchJr in preschool education: a case study. International Journal of Mobile Learning and Organisation, 10(3), 187-202. Retrieved from https://www.academia.edu/download/47316510/IJMLO10305_Papadakis_et_al.pdf
  35. Perkins, D. N., Hancock, C., Hobbs, R., Martin, F., & Simmons, R. (1986). Conditions of learning in novice programmers. Journal of Educational Computing Research, 2(1), 37-55. https://doi.org/10.2190/GUJT-JCBJ-Q6QU-Q9PL
  36. Piwek, P., & Savage, S. (2020). Challenges with Learning to Program and Problem Solve: An Analysis of Student Online Discussions. https://doi.org/10.1145/3328778.3366838
  37. Qian, Y., & Lehman, J. (2017). Students’ misconceptions and other difficulties in introductory programming: A literature review. ACM Transactions on Computing Education (TOCE), 18(1), 1-24. https://doi.org/10.1145/3077618
  38. Rafique, W., Dou, W., Hussain, K., & Ahmed, K. (2020). Factors Influencing Programming Expertise in a Web-based E-learning Paradigm. Online Learning, 24(1). https://doi.org/10.24059/olj.v24i1.1956
  39. Rist, R. S. (1995). Program structure and design. Cognitive science, 19(4), 507-562. https://doi.org/10.1207/s15516709cog1904_3
  40. Rist, R. S. (1996). Teaching Eiffel as a first language. Journal of Object-Oriented Programming, 9(1), 30-41.
  41. Robins, A. (2019). Novice programmers and introductory programming. The Cambridge Handbook of Computing Education Research, Cambridge Handbooks in Psychology, 327-376. Retrieved from https://www.otago.ac.nz/computer-science/otago706761.pdf
  42. Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), 137-172. https://doi.org/10.1076/csed.13.2.137.14200
  43. Rogalski, J., & Samurçay, R. (1990). Acquisition of programming knowledge and skills. Psychology of programming, 18, 157-174. https://doi.org/10.1016/B978-0-12-350772-3.50015-X
  44. Savage, S., & Piwek, P. (2019). Full report on challenges with learning to program and problem solve: an analysis of first year undergraduate Open University distance learning students’ online discussions. Retrieved from http://oro.open.ac.uk/68073/1/IOC_TM112_Python_Help_Forum_Research.pdf
  45. Soloway, E., Bonar, J., & Ehrlich, K. (1983). Cognitive strategies and looping constructs: An empirical study. Communications of the ACM, 26(11), 853-860. https://doi.org/10.1145/182.358436
  46. Soloway, E., & Spohrer, J. C. (2013). Studying the novice programmer. Hillsdale, New Jersey: Psychology Press. https://doi.org/10.4324/9781315808321
  47. Spohrer, J. C., & Soloway, E. (1986). Novice mistakes: Are the folk wisdoms correct? Communications of the ACM, 29(7), 624-632. https://doi.org/10.1145/6138.6145
  48. Tai, D. W., Yu, C.-H., Lai, L.-C., & Lin, S.-J. (2003). A study on the effects of spatial ability in promoting the logical thinking abilities of students with regard to programming language. World Transactions on Engineering and Technology Education, 2(2). Retrieved from http://www.wiete.com.au/journals/WTE&TE/Pages/Vol.2,%20No.2%20(2003)/Tai12.pdf
  49. Tan, P.-H., Ting, C.-Y., & Ling, S.-W. (2009). Learning difficulties in programming courses: undergraduates’ perspective and perception. Paper presented at the Computer Technology and Development, 2009. ICCTD’09. International Conference on. Retrieved from https://ieeexplore.ieee.org/abstract/document/5359977
  50. Tüysüz, C. (2010). The effect of the virtual laboratory on students’ achievement and attitude in chemistry. International Online Journal of Educational Sciences, 2(1), 37-53. Retrieved from https://www.academia.edu/download/55398446/Effect_Virtual_lab.pdf
  51. Winslow, L. E. (1996). Programming pedagogy—a psychological overview. ACM SIGCSE Bulletin, 28(3), 17-22. https://doi.org/10.1145/234867.234872
  52. Zhang, X., Zhang, C., Stafford, T. F., & Zhang, P. (2019). Teaching introductory programming to IS students: The impact of teaching approaches on learning performance. Journal of Information Systems Education, 24(2), 6. Retrieved from http://jise.org/Volume24/n2/JISEv24n2p147.pdf