Learning problem solving skills: Comparison of E-learning and M-learning in an introductory programming course

  • Sohail Iqbal MalikEmail author
  • Roy Mathew
  • Rim Al-Nuaimi
  • Abir Al-Sideiri
  • Jo Coldwell-Neilson


Problem solving skills are considered an integral part of grasping the precise concepts of the programming domain for novices in introductory programming (IP) courses. But these skills are mostly covered only in early lectures of such courses or are included in just a few early chapters of some relevant textbooks. Consequently, high failure and dropout rates are often reported in IP courses. In this study, we developed and introduced an application, called PROBSOL, which is designed to focus on, and enhance, novice programmers’ problem solving skills. Two versions of the application were developed, a web-based version and a mobile app. The applications were based on pseudo-code techniques. A survey was implemented to collect students’ feedback and semi-structured interviews were conducted to collect instructors’ opinion about the applications. Moreover, final exam grades over two semesters were compared to determine the impact of including the PROBSOL applications in the course. The results show that both students and instructors appreciated the applications and that their use supports students’ cognitive gains and engagement. Moreover, they promote students’ affective engagement in the IP course. The use of the applications improves novices’ programming understanding, logic capabilities and problem solving skills. However, students preferred the mobile version rather than the web-based version during the course. The comparison of students’ grades showed that the students’ achievements were improved and attrition rates were reduced after introducing the PROBSOL applications in the course.


Problem solving skills Computer programming M-learning Pseudo-code E-learning 



  1. ACM-IEEE Joint Task Force on Computing Curricula,: Computer Science Curricula 2013 (2013). ACM Press and IEEE Computer Society press.
  2. Ala-Mutka, K. (2004). Problems in learning and teaching programming – a literature study for developing visualizations in the codewitz-minerva project, Codewitz needs analysis, retrieved 20/10/2018,
  3. Australian Computer Society (2013). The ICT profession body of knowledge, retrieved 25/9/2015,
  4. De Raadt, M. (2008). Teaching programming strategies explicitly to novice programmers’, PhD thesis, University of Southern Queensland, Australia, retrieved 3/5/2018, USQ ePrints,
  5. De Raadt, M., Toleman, M., & Watson, R. (2005). Textbooks under inspection, University of Southern Queensland, Australia, retrieved 5/6/2018,
  6. Hooshyar, D., Ahmad, R. B., Yousefi, M., Yusop, F. D., & Horng, S. J. (2015). A flowchart-based intelligent tutoring system for improving problem-solving skills of novice programmers. Journal of Computer Assisted Learning, 31(4), 345–361. Scholar
  7. Hulme, A. K. (2007). Mobile usability in educational context: What have we learnt? International Review of Research in Open and Distance Learning, 8(2), 1–17.CrossRefGoogle Scholar
  8. Iqbal, S., & Harsh, O. K. (2013). A self review and external review model for teaching and assessing novice programmers. International Journal of Information and Education Technology, 3(2), 120–123.CrossRefGoogle Scholar
  9. Iqbal, S., Chowdhury, M., & Harsh, O. K. (2013). Mobile devices supported learning for novice programmers. In Proceeding of the 2nd international conference on E-learning and E-technologies in education (pp. 277–282). Poland: IEEE.Google Scholar
  10. Kanaki, K., & Kalogiannakis, M. (2018). Introducing fundamental object-oriented programming concepts in preschool education within the context of physical science courses. Education and Information Technologies, 23(6), 2673–2698.CrossRefGoogle Scholar
  11. Keegan, D. (2012). The future of learning: From eLearning to mLearning, ZIFF papiere 119. Retrieved from Accessed 20 Dec 2018.
  12. Kölling, M., & Rosenberg, J. (1996). BlueJ - a language for teaching object-oriented programming. In Proceedings of the 27th SIGCSE Technical Symposium on Computer Science Education, pp. 190–194, St. Louis, USA.Google Scholar
  13. Koulouri, T., Lauria, S., & Macredie, R. D. (2015). Teaching introductory programming: A quantitative evaluation of different approaches. Transactions of Computer Education, 14(4) ACM.Google Scholar
  14. Malik, I.S. (2016a). Role of ADRI model in teaching and assessing novice programmers, PhD Thesis, Deakin University, Retrieved April 2017,
  15. Malik, I.S. (2016b). Enhancing practice and achievement in introductory programming using an ADRI editor. In Proceedings of the IEEE International Conference on Teaching, Assessment and Learning for Engineering, pp. 32–39, IEEE, Thailand, 7–9 December.
  16. Malik, I. S. (2019). Assessing the teaching and learning process of an introductory programming course with Bloom's taxonomy and Assurance of Learning (AOL). International Journal of Information and Communication Technology Education (IJICTE), 15(2), 130–145. Scholar
  17. Malik, I. S., & Coldwell-Neilson, J. (2016). A model for teaching an introductory programming course using ADRI. Education and Information Technologies. Springer.
  18. Malik, I. S., & Coldwell-Neilson, J. (2017a). Comparison of traditional and ADRI based teaching approaches in an introductory programming course. Journal of Information Technology Education: Research, 16, 267–283. Retrieved from Accessed 04 May 2018
  19. Malik, S.I., & Coldwell-Neilson, Jo. (2017b). Impact of a new teaching and learning approach in an introductory programming course. Journal of Educational Computing Research, SAGE, vol. 55, No. 6, pp. 789–819, 2017. DOI:
  20. Malik, I.S., & Coldwell-Neilson, Jo. (2018). Gender difference in an introductory programming course: New teaching approach, students’ learning outcomes, and perceptions. Education and Information Technologies, vol. 23, No. 6, pp. 2453–2475. DOI:, Springer.
  21. Malik, S.I., Mathew, R., & Hammood, M.M. (2019). 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. Advances in Science, Technology & Innovation, pp. 295–302, Springer.Google Scholar
  22. Oda, Y., Fudaba, H., Neubig, G., Hata, H., Sakti, S., Toda, T., & Nakamura, S. (2015). Learning to generate Pseudo-code from source code using statistical machine translation. In Proceedings of 30th IEEE/ACM international conference on Automated Software Engineering (ASE)., USA.Google Scholar
  23. 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(3/4), 217–233.CrossRefGoogle Scholar
  24. Reardon, S., & Tangney, B. (2014). Smartphones, studio-based learning, and scaffolding: Helping novice learn to program. Transaction on Computing Education, 14(4) ACM.Google Scholar
  25. Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137–172.CrossRefGoogle Scholar
  26. Sarkar, N., Ford, W., & Manzo, C. (2017). Engaging digital natives through social learning. Systemics, Cybernetics and Informatics, 15(2), 1–4.Google Scholar
  27. Shanthi, D., & Al-Mukheini, T.S. (2010). Impact of mobile learning in the colleges of applied sciences in Sultanate of Oman. In 2nd International conferences on higher education and quality assurance, 12–13 June, Muscat, Oman.Google Scholar
  28. Shuhidan, S.M. (2012). Probing the minds of novice programmers through guided learning, PhD thesis, RMIT University, Australia.Google Scholar
  29. Soloway, E. (1986). Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850–858.CrossRefGoogle Scholar
  30. Taheri, S. M., Sasaki, M., & Ngetha, H. N. (2015). Evaluating the effectiveness of problem solving techniques and tools in programming. In Proceedings of Science and Information Conference (SAI) IEEE., UK.Google Scholar
  31. Tawafak, R. M., Romli, A. B., Arshah, R. B. A., & Almaroof, R. A. S. (2018). Assessing the impact of technology learning and assessment method on academic performance: Review paper. Eurasia Journal of Mathematics, Science and Technology Education, 14(6), 2241–2254. Scholar
  32. Webster, M. (1994). Overview of programming and problem solving, Merriam-Webster’s collegiate dictionary, Tenth Edition, retrieved on 15/7/ 2018,
  33. Winslow, L. E. (1996). Programming pedagogy—a psychological overview. ACM SIGCSE Bulletin, 28(3), 17–22.CrossRefGoogle Scholar
  34. Yoo, J., Yoo, S., Seo, S., Dong, Z., & Pettey, C. (2012). Can we teach algorithm development skills? In Proceedings of the 50th annual southeast regional conference (pp. 101–105). New York: ACM.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2019

Authors and Affiliations

  1. 1.Buraimi University CollegeAl-BuraimiOman
  2. 2.Universiti Tenaga National (UniTen)KajangMalaysia
  3. 3.Deakin UniversityGeelongAustralia

Personalised recommendations