Journal Screenshot

International Journal of Academic Research in Progressive Education and Development

Open Access Journal

ISSN: 2226-6348

Evaluating the Difficulties in Programming Learning: Insights from Polytechnic Students

Zuraihah Ngadengon, Tamil Selvan Subramaniam, Zurina Yasak, Noor Azmiza Ideris, Zuraidah Mohd Ramly

http://dx.doi.org/10.6007/IJARPED/v14-i1/24518

Open access

This study explores the challenges and perspectives of students learning programming at a Malaysian polytechnic. The study seeks to analyze students's understanding of Problem Solving and Program Design (PSPD), the factors that contribute to poor performance in the course and the influence learning environments have on how well they perform. We surveyed 236 students to obtain their demographic data and knowledge, skills, and attitudes toward programming education. The above shows that control structure topics were identified as problematic among students. Moreover, the study identifies a few challenges, including designing algorithms, debugging, and understanding programming syntax. The results also indicate that students favor more hands-on, applications-oriented approaches to the learning process, such as group discussion, pair programming, and laboratory work, rather than didactic lecture-based approaches. Consequently, the results from the study further revealed that students' reactions to computational thinking modules are' positive, which allows students to enhance their problem-solving and program design abilities. Seeing these outcomes indicates that some teaching methods, such as stress learning in pairs through pair programming and incorporating computational thinking, should be encouraged to improve the outcome of programming education. The exploration presents evidence-based strategies that lecturers can embed in their teaching to help alleviate students' struggles and understanding of programming principles.

Abidin, A. F. Z., Yaacob, M. R. Bin, Diah, M. A. I. B. M., Kadiran, K. A., Mustapa, R. F., Abdullah, M. Bin, Ismail, M. I., & Zaiton, S. N. A. H. (2018). E-FLOWCHART: An electronic educational quiz board that test student knowledge on C programming concept using flowchart command. ARPN Journal of Engineering and Applied Sciences, 13(23), 9081–9085.
Alshaye, I. A., Jumaat, N. F., & Tasir, Z. (2018). Programming skills and the relation in Fostering Students' Higher Order Thinking. Asian Social Science, 14(11), 76. https://doi.org/10.5539/ass.v14n11p76
Amnouychokanant, V., Boonlue, S., Chuathong, S., & Thamwipat, K. (2021a). A study of first-year students' attitudes toward programming in the innovation in educational technology course. Education Research International, 2021, 1–10. https://doi.org/10.1155/2021/9105342
Amnouychokanant, V., Boonlue, S., Chuathong, S., & Thamwipat, K. (2021b). Online learning using block-based programming to foster computational thinking abilities during the COVID-19 pandemic. International Journal of Emerging Technologies in Learning, 16(13), 227–247. https://doi.org/10.3991/ijet.v16i13.22591
Angeli, C. (2022). The effects of scaffolded programming scripts on pre-service teachers' computational thinking: Developing algorithmic thinking through programming robots. International Journal of Child-Computer Interaction, 31, 100329. https://doi.org/10.1016/j.ijcci.2021.100329
Aris, H. (2015). Improving students performance in introductory programming subject: A case study. 10th International Conference on Computer Science and Education, ICCSE 2015, 657–662. https://doi.org/10.1109/ICCSE.2015.7250328
Azhar, N., & Adnan, N. H. (2022). Mengkaji kelemahan dan kekuatan dalam PdP pengaturcaraan C #: Satu kajian kes. Jurnal Dunia Pendidikan, 4(2), 280–293.
Beasley, Z., & Johnson, A. (2022). The impact of remote pair programming in an upper-level CS course. Conference on Innovation and Technology in Computer Science Education, 1, 235–240. https://doi.org/10.1145/3502718.3524772
Bennedsen, J., & Caspersen, M. E. (2007). Failure rates in introductory programming. ACM SIGCSE Bulletin, 39(2), 32–36. https://doi.org/10.1145/1272848.1272879
Bennedsen, J., & Caspersen, M. E. (2019). Failure rates in Introductory Programming-12 years later. ACM Inroads, 10(2), 30–36. https://doi.org/https://doi.org/10.1145/3324888
Caceffo, R., Wolfman, S., Booth, K. S., & Azevedo, R. (2016). Developing a computer science concept inventory for introductory programming. SIGCSE 2016 - Proceedings of the 47th ACM Technical Symposium on Computing Science Education, 364–369. https://doi.org/10.1145/2839509.2844559
Cárdenas-Cobo, J., Puris, A., Novoa-hernández, P., Parra-jiménez, Á., Moreno-león, J., & Benavides, D. (2021). Using scratch to improve learning programming in college students: A positive experience from a non-WEIRD country. Electronics, 10, 1–15. https://doi.org/10.3390/electronics10101180
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
Ching, Y. H., Hsu, Y. C., & Baldwin, S. (2018). Developing Computational Thinking with Educational Technologies for Young Learners. TechTrends, 62(6), 563–573. https://doi.org/10.1007/s11528-018-0292-7
Chongo, S., Osman, K., & Nayan, N. A. (2021). Impact of the plugged-in and unplugged chemistry computational thinking modules on achievement in chemistry. Eurasia Journal of Mathematics, Science and Technology Education, 17(4), 1–21. https://doi.org/10.29333/ejmste/10789
Chuang, Y. T., & Chang, H. Y. (2024). Analyzing novice and competent programmers' problem-solving behaviors using an automated evaluation system. Science of Computer Programming, 237, 103138. https://doi.org/10.1016/j.scico.2024.103138
Columba, L. (2020). Computational thinking using the first in math® online program. Mathematics Teaching-Research Journal, 12(1), 45–57.
Creswell, J. W. (2011). Educational Research: Planning, Conducting, and Evaluating Quantitative and Qualitative Research. In Pearson (4th Editio). Pearson.
Demir, Ö., & Seferoglu, S. S. (2021). A Comparison of Solo and Pair Programming in Terms of Flow Experience, Coding Quality, and Coding Achievement. Journal of Educational Computing Research, 58(8), 1448–1466. https://doi.org/10.1177/0735633120949788
Dengler, K., & Matthes, B. (2018). The impacts of digital transformation on the labour market: substitution potentials of occupations in Germany. Technological Forecasting & Social Change, 137, 304–316. https://doi.org/10.1016/j.techfore.2018.09.024
Erol, O., & Ç?rak, N. S. (2022). The effect of a programming tool scratch on the problem-solving skills of middle school students. Education and Information Technologies, 27(3), 4065–4086. https://doi.org/10.1007/s10639-021-10776-w
Farisiyah, U., Istiyono, E., Hassan, A., Putro, N. H. P. S., Ayriza, Y., Setiawati, F. A., & Mubarok, E. S. (2025). Psychometric properties of the adapted critical language awareness instrument. Journal of Education and Learning, 19(1), 404–415. https://doi.org/10.11591/edulearn.v19i1.21436
Figueiredo, J., & García-Peñalvo, F. J. (2024). Design science research applied to difficulties of teaching and learning initial programming. Universal Access in the Information Society, 23(3), 1151–1161. https://doi.org/10.1007/s10209-022-00941-4
Garcia, M. B. (2021). Cooperative learning in computer programming: A quasi-experimental evaluation of Jigsaw teaching strategy with novice programmers. Education and Information Technologies, 26(4), 4839–4856. https://doi.org/10.1007/s10639-021-10502-6
Gay, L. R., Mills, G. E., & Airasian, P. (2011). Educational Research: Competencies for Analysis and Applications 10th Edition. Pearson.
Habib, M. A., Raja-Yusof, R. J., Salim, S. S., Sani, A. A., Sofian, H., & Abu Bakar, A. (2021). Analyzing students' experience in programming with computational thinking through competitive, physical, and tactile games: The quadrilateral method approach. Turkish Journal of Electrical Engineering and Computer Sciences, 25(9), 2280–2297. https://doi.org/10.3906/elk-2010-73
Hai Hom, S. N., & Abdul Talib, C. (2020). Integration of computational thinking skills in teaching and learning programming using the EZ-Prog among matriculation student. Solid State Technology, 63(1s), 670–779.
Hair, J. F., Babin, B. J., & Black, W. C. (2009). Multivariate data analysis 7th Edition. Pearson.
Hooshyar, D., Ahmad, R. B., Md Nasir, M. H. N., Shamshirband, S., & Horng, S. J. (2015). Flowchart-based programming environments for improving comprehension and problem-solving skill of novice programmers: A survey. International Journal of Advanced Intelligence Paradigms, 7(1), 24–56. https://doi.org/10.1504/IJAIP.2015.070343
Huang, Y., Schunn, C. D., Guerra, J., & Brusilovsky, P. (2024). Why Students Cannot Easily Integrate Component Skills: An Investigation of the Composition Effect in Programming. ACM Transactions on Computing Education, 24(3). https://doi.org/10.1145/3673239
Husin, N. F., Mohamad Judi, H., Hanawi, S. A., & Mohd Amin, H. (2020). Technology integration to promote desire to Learn programming in higher education. International Journal on Advanced Science, Engineering and Information Technology, 10(1), 253–259.
Kadar, R., Abdul Wahab, N., Othman, J., Shamsuddin, M., & Mahlan, S. B. (2021). A Study of Difficulties in Teaching and Learning Programming: A Systematic Literature Review. International Journal of Academic Research in Progressive Education and Development, 10(3), 591–605. https://doi.org/10.6007/ijarped/v10-i3/11100
Kadar, R., Mahlan, S. B., & Shamsuddin, M. (2022). Analysis of Factors Contributing to the Difficulties in Learning Computer Programming among Non- Computer Science Students. IEEE 12th Symposium on Computer Applications & Industrial Electronics (ISCAIE), 89–94.
Kim, S., & Lee, Y. (2016). The effect of robot programming education on attitudes towards robots. Technological Forecasting & Social Change, 9(24), 1–11. https://doi.org/10.17485/ijst/2016/v9i24/96104
Lahtinen, E., Ala-Mutka, K., & Järvinen, H. M. (2005). A study of the difficulties of novice programmers. ACM SIGCSE Bulletin, 37(3), 14–18. https://doi.org/10.1145/1067445.1067453
Lai, A. F., & Yang, C. Y. (2022). The Effectiveness of Block-Based Programming Learning on the Problem-Solving Skills of the Freshmen. Communications in Computer and Information Science. https://doi.org/10.1007/978-981-19-9582-8_45
Lai, X., & Wong, G. K. (2022). Collaborative versus individual problem solving in computational thinking through programming?: A meta-analysis. British Journal of Educational Technology, 53, 150–170. https://doi.org/10.1111/bjet.13157
Lapawi, N., & Husnin, H. (2020). Investigating students' computational thinking skills on Matter module. International Journal of Advanced Computer Science and Applications, 11(11), 310–314. https://doi.org/10.14569/IJACSA.2020.0111140
Laura-Ochoa, L., & Bedregal-Alpaca, N. (2022). Incorporation of Computational Thinking Practices to Enhance Learning in a Programming Course. International Journal of Advanced Computer Science and Applications, 13(2), 194–200. https://doi.org/10.14569/IJACSA.2022.0130224
Lee, Y., & Cho, J. (2020). Knowledge representation for computational thinking using knowledge discovery computing. Information Technology and Management, 21(1), 15–28. https://doi.org/10.1007/s10799-019-00299-9
Lye, S. Y., & Koh, J. H. L. (2014). Review on teaching and learning of computational thinking through programming: What is next for K-12? Computers in Human Behavior, 41, 51–61. https://doi.org/10.1016/j.chb.2014.09.012
Ma, L., Ferguson, J., Roper, M., & Wood, M. (2011). Investigating and improving the models of programming concepts held by novice programmers. Computer Science Education, 21(1), 57–80. https://doi.org/10.1080/08993408.2011.554722
Malik, S. I., & Coldwell-Neilson, J. (2017). Impact of a new Teaching and learning approach in an Introductory Programming course. Journal of Educational Computing Research, 55(6), 789–819. https://doi.org/10.1177/0735633116685852
Malik, S. I., Tawafak, R. M., Alfarsi, G., Ashfaque, M. W., & Mathew, R. (2021). A model for enhancing algorithmic thinking in programming education using PAAM. International Journal of Interactive Mobile Technologies, 15(9), 37–51. https://doi.org/10.3991/ijim.v15i09.20617
Mohd Fadzil, A. H., Mohd Nihra Haruzuan, M. S., Noraffandy, Y., & Zaleha, A. (2022). Effects of augmented reality application integration with computational thinking in geometry topics. Education and Information Technologies, 27, 9485–9521. https://doi.org/10.1007/s10639-022-10994-w
Mohd Noor, N. F., Saad, A., & Hashim, A. (2021). Functional requirements of a C-Programming problem-solving application. Politeknik & Kolej Komuniti Journal of Life Long Learning, 5(1), 1–12.
Mohd Rum, S. N., & Zolkepli, M. (2018). Metacognitive strategies in teaching and learning computer programming. International Journal of Engineering & Technology, 7(4.38), 788–794. https://doi.org/10.14419/ijet.v7i4.38.27546
Mohd Yusoff, K., Sahari Ashaari, N., Tengku Wook, T. S. M., & Mohd Ali, N. (2020). Analysis on the requirements of computational thinking skills to overcome the difficulties in learning programming. (IJACSA) International Journal of Advanced Computer Science and Application, 11(3), 244–253.
Mohd Yusoff, K., Sahari Ashaari, N., Tengku Wook, T. S. M., & Mohd Ali, N. (2021). Validation of the Components and Elements of Computational Thinking for Teaching and Learning Programming using the Fuzzy Delphi Method. International Journal of Advanced Computer Science and Applications, 12(1), 80–88. https://doi.org/10.14569/IJACSA.2021.0120111
Morris, H. S., & Liu, S. J. C. (2020). Computational thinking education in the Asian Pacific region. The Asia-Pacific Education Researcher, 29(1), 1–8. https://doi.org/10.1007/s40299-019-00494-w
Nagappan, N., Williams, L., Ferzli, M., Wiebe, E., Yang, K., Miller, C., & Balik, S. (2003). Improving the CS1 experience with pair programming. ACM SIGCSE Bulletin, 35(1), 359–362. https://doi.org/10.1145/792548.612006
Namli, N. A., & Aybek, B. (2022). An Investigation of The Effect of Block-Based Programming and Unplugged Coding Activities on Fifth Graders' Computational Thinking Skills, Self-Efficacy and Academic Performance. Contemporary Educational Technology, 14(1), 1–16. https://doi.org/10.30935/cedtech/11477
Nunnally, J. C., & Bernstein, I. H. (1994). Psychometric Theory 3rd Edition. McGraw-Hill. https://doi.org/10.2307/1161962
Ou Yang, F. C., Lai, H. M., & Wang, Y. W. (2023). Effect of augmented reality-based virtual educational robotics on programming students' enjoyment of learning, computational thinking skills, and academic achievement. Computers and Education, 195, 104721. https://doi.org/10.1016/j.compedu.2022.104721
Papadakis, S., Kalogiannakis, M., Zaranis, N., & Orfanakis, V. (2016). Using Scratch and App Inventor for teaching introductory programming in secondary Education. A case study. International Journal of Technology Enhanced Learning, 8, 217–232. https://doi.org/10.1504/ijtel.2016.10001505
Pimpimool, A. (2024). Enhancing Algorithm and Programming Education through Collaborative Blended Learning: A Problem-Based Approach for First-Year Students. International Journal of Modern Education and Computer Science, 16(4), 35–45. https://doi.org/10.5815/ijmecs.2024.04.03
Piwek, P., & Savage, S. (2019). Challenges with learning to program and problem solve: An analysis of student online discussions. Annual Conference on Innovation and Technology in Computer Science Education, ITiCSE, 494–499. https://doi.org/10.1145/3328778.3366838
Polat, E., & Yilmaz, R. M. (2022). Unplugged versus plugged-in: examining basic programming achievement and computational thinking of 6th-grade students. Education and Information Technologies, 27, 9145–9179. https://doi.org/10.1007/s10639-022-10992-y
Rahim, H., Zaman, H. B., Ahmad, A., & Ali, N. M. (2018). Student' s Difficulties in Learning Programming. Advanced Journal of Technical and Vocational Education, 2(3), 40–43. https://doi.org/10.26666/rmp.ajtve.2018.3.7
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
Roque-Hernandez, R. V., Guerra-Moya, S. A., & Caballero-Rico, F. C. (2021). Acceptance and assessment in student pair-programming: A case study. International Journal of Emerging Technologies in Learning, 16(9), 4–19. https://doi.org/10.3991/ijet.v16i09.18693
Sabarinath, R., & Quek, C. L. G. (2020). A case study investigating programming students' peer review of codes and their perceptions of the online learning environment. Education and Information Technologies, 25, 3553–3575.
Simon, B., & Hanks, B. (2008). First-year students' impressions of pair programming in CS1. ACM Journal on Educational Resources in Computing, 7(4), 73–85. https://doi.org/10.1145/1316450.1316455
Tan, P. H., Ting, C. Y., & Ling, S. W. (2009). Learning difficulties in programming courses: Undergraduates' perspective and perception. ICCTD 2009 - 2009 International Conference on Computer Technology and Development, 1, 42–46. https://doi.org/10.1109/ICCTD.2009.188
Topalli, D., & Cagiltay, N. E. (2018). Improving programming skills in engineering education through problem-based game projects with Scratch. Computers and Education, 120, 64–74. https://doi.org/10.1016/j.compedu.2018.01.011
Toukiloglou, P., & Xinogalos, S. (2024). Effects of Collaborative Support on Learning in Serious Games for Programming. Journal of Educational Computing Research. https://doi.org/10.1177/07356331241296888
Ubaidullah, N. H., Mohamed, Z., Hamid, J., & Sulaiman, S. (2021). Improving novice students' computational thinking skills by problem-solving and metacognitive techniques. International Journal of Learning, Teaching and Educational Research, 20(6), 88–108. https://doi.org/https://doi.org/10.26803/ijlter.20.6.5
Watson, C., & Li, F. W. B. (2014). Failure rates in Introductory Programming revisited. Proceedings Conference on Innovation & Technology in Computer Science Education, 39–44.
Weng, X., Ng, O. L., Cui, Z., & Leung, S. (2023). Creativity Development With Problem-Based Digital Making and Block-Based Programming for Science, Technology, Engineering, Arts, and Mathematics Learning in Middle School Contexts. Journal of Educational Computing Research, 61(2), 304–328. https://doi.org/10.1177/07356331221115661
Xinogalos, S. (2014). Designing and deploying programming courses: Strategies, tools, difficulties and pedagogy. Education and Information Technologies, 21(3), 559–588. https://doi.org/10.1007/s10639-014-9341-9
Zhan, Z., Li, T., & Ye, Y. (2024). Effect of jigsaw-integrated task-driven learning on students' motivation, computational thinking, collaborative skills, and programming performance in a high-school programming course. Computer Applications in Engineering Education, 32(6). https://doi.org/10.1002/cae.22793
Zhang, J. H., Meng, B., Zou, L. C., Zhu, Y., & Hwang, G. J. (2023). Progressive flowchart development scaffolding to improve university students' computational thinking and programming self-efficacy. Interactive Learning Environments, 31(6), 3792–3809. https://doi.org/10.1080/10494820.2021.1943687
Zheng, L., Zhen, Y., Niu, J., & Zhong, L. (2022). An exploratory study on fade-in versus fade-out scaffolding for novice programmers in online collaborative programming settings. Journal of Computing in Higher Education, 19, 489–516. https://doi.org/10.1007/s12528-021-09307-w
?y?a, K., Chwaleba, K., & Choma, D. (2024). Evaluating Usability and Accessibility of Visual Programming Tools for Novice Programmers—The Case of App Inventor, Scratch, and StarLogo. Applied Sciences (Switzerland), 14(21). https://doi.org/10.3390/app14219887

Ngadengon, Z., Subramaniam, T. S., Yasak, Z., Ideris, N. A., & Ramly, Z. M. (2025). Evaluating the Difficulties in Programming Learning: Insights from Polytechnic Students. International Journal of Academic Research in Progressive Education and Development, 14(1), 1051-1065.