Abstract
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.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
ACM-IEEE Joint Task Force on Computing Curricula,: Computer Science Curricula 2013 (2013). ACM Press and IEEE Computer Society press. https://doi.org/10.1145/2534860
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, http://www.cs.tut.fi/~edge/literature_study.pdf.
Australian Computer Society (2013). The ICT profession body of knowledge, retrieved 25/9/2015, acs.org.au/__data/assets/pdf_file/0013/24502/The-ICT-Profession-Body-of-Knowledge-23-Sept-2013.pdf.
De Raadt, M. (2008). Teaching programming strategies explicitly to novice programmers’, PhD thesis, University of Southern Queensland, Australia, retrieved 3/5/2018, USQ ePrints, https://eprints.usq.edu.au/4827/.
De Raadt, M., Toleman, M., & Watson, R. (2005). Textbooks under inspection, University of Southern Queensland, Australia, retrieved 5/6/2018, http://eprints.usq.edu.au/167/1/TechReport_Draft_10.pdf.
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. https://doi.org/10.1111/jcal.12099.
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.
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.
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.
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.
Keegan, D. (2012). The future of learning: From eLearning to mLearning, ZIFF papiere 119. Retrieved from https://files.eric.ed.gov/fulltext/ED472435.pdf. Accessed 20 Dec 2018.
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.
Koulouri, T., Lauria, S., & Macredie, R. D. (2015). Teaching introductory programming: A quantitative evaluation of different approaches. Transactions of Computer Education, 14(4) ACM.
Malik, I.S. (2016a). Role of ADRI model in teaching and assessing novice programmers, PhD Thesis, Deakin University, Retrieved April 2017, http://dro.deakin.edu.au/view/DU:30088862.
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. https://doi.org/10.1109/TALE.2016.7851766.
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. https://doi.org/10.4018/IJICTE.2019040108.
Malik, I. S., & Coldwell-Neilson, J. (2016). A model for teaching an introductory programming course using ADRI. Education and Information Technologies. Springer. https://doi.org/10.1007/s10639-016-9474-0.
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 http://www.informingscience.org/Publications/3793. Accessed 04 May 2018
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: https://doi.org/10.1177/0735633116685852
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: https://doi.org/10.1007/s10639-018-9725-3, Springer.
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.
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). https://doi.org/10.1109/ASE.2015.36, USA.
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.
Reardon, S., & Tangney, B. (2014). Smartphones, studio-based learning, and scaffolding: Helping novice learn to program. Transaction on Computing Education, 14(4) ACM.
Robins, A., Rountree, J., & Rountree, N. (2003). Learning and teaching programming: A review and discussion. Computer Science Education, 13(2), 137–172.
Sarkar, N., Ford, W., & Manzo, C. (2017). Engaging digital natives through social learning. Systemics, Cybernetics and Informatics, 15(2), 1–4.
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.
Shuhidan, S.M. (2012). Probing the minds of novice programmers through guided learning, PhD thesis, RMIT University, Australia.
Soloway, E. (1986). Learning to program = learning to construct mechanisms and explanations. Communications of the ACM, 29(9), 850–858.
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. https://doi.org/10.1109/SAI.2015.7237253, UK.
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. https://doi.org/10.29333/ejmste/87117.
Webster, M. (1994). Overview of programming and problem solving, Merriam-Webster’s collegiate dictionary, Tenth Edition, retrieved on 15/7/ 2018, http://computerscience.jbpub.com/vbnet/pdfs/mcmillan01.pdf.
Winslow, L. E. (1996). Programming pedagogy—a psychological overview. ACM SIGCSE Bulletin, 28(3), 17–22.
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.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Malik, S.I., Mathew, R., Al-Nuaimi, R. et al. Learning problem solving skills: Comparison of E-learning and M-learning in an introductory programming course. Educ Inf Technol 24, 2779–2796 (2019). https://doi.org/10.1007/s10639-019-09896-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10639-019-09896-1