Research Article
Factors Contributing to the Difficulties in Teaching and Learning of Computer Programming: A Literature Review
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
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
- 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
- Baser, M. (2013). Attitude, Gender and Achievement in Computer Programming. Online Submission. https://doi.org/10.5829/idosi.mejsr.2013.14.2.2007
- Bennedsen, J., & Caspersen, M. E. (2005). Revealing the programming process. Paper presented at the ACM SIGCSE Bulletin. https://doi.org/10.1145/1047344.1047413
- 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
- Bonar, J., & Soloway, E. (1989). Preprogramming Knowledge: A Major Source of Misconceptions in Novice. https://doi.org/10.1207/s15327051hci0102_3
- 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
- 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
- Boulay, B. D. (2013). Some difficulties of learning to program. Studying the Novice Programmer, 283. https://doi.org/10.2190/3LFX-9RRF-67T8-UVK9
- 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
- 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
- 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
- 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
- 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
- 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/
- Dale, N., & Weems, C. (2005). Programming and problem solving with C++. Boston: Jones & Bartlett Learning.
- Dale, N., & Weems, C. (2013). Programming and Problem Solving with C++: Comprehensive: Jones & Bartlett Publishers.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Rist, R. S. (1995). Program structure and design. Cognitive science, 19(4), 507-562. https://doi.org/10.1207/s15516709cog1904_3
- Rist, R. S. (1996). Teaching Eiffel as a first language. Journal of Object-Oriented Programming, 9(1), 30-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
- 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
- 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
- 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
- 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
- Soloway, E., & Spohrer, J. C. (2013). Studying the novice programmer. Hillsdale, New Jersey: Psychology Press. https://doi.org/10.4324/9781315808321
- 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
- 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
- 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
- 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
- Winslow, L. E. (1996). Programming pedagogy—a psychological overview. ACM SIGCSE Bulletin, 28(3), 17-22. https://doi.org/10.1145/234867.234872
- 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