PROBSOL: A Web-Based Application to Develop Problem-Solving Skills in Introductory Programming

  • Sohail I. Malik
  • Roy Mathew
  • Maytham M. Hammood
Conference paper
Part of the Advances in Science, Technology & Innovation book series (ASTI)


Problem-solving skills are considered as an important part of learning to program for novice programmers. Different techniques such as pseudocode and flowchart are used to develop these skills. In this study, a web-based application ‘PROBSOL’ was developed and offered to the novices in an introductory programming course to acquire problem-solving skills. The PROBSOL application is based on pseudo-code technique. One of the advantages of this application for novices is to focus on problem domain without worrying about the syntax of the programming language. Practice questions related to all the topics included in the introductory programming course were prepared and offered in the application. The results show a positive impact on the students’ learning outcomes and attrition rate. Students (treatment group) who used the PROBSOL application show better results compared to the control group.


Problem-solving skills Pseudo code Introductory programming 


  1. 1.
    Bureau of Labor Statistics, U.S. Department of Labor. Occupational Outlook Handbook, 2014–15 Edition, Computer Programmers. Last accessed 28 Aug 2015
  2. 2.
    Guzdial, M., Soloway, E.: Log on education: teaching the Nintendo generation to program. Commun. ACM 45(4), 17–21 (2002)CrossRefGoogle Scholar
  3. 3.
    Lahtinen, E., Ala-Mutka, K., Järvinen, H.M.: A study of the difficulties of novice programmers. ACM SIGCSE Bull. 37(3), 14–18 (2005)CrossRefGoogle Scholar
  4. 4.
    Sykes, E.R.: Determining the effectiveness of the 3D Alice programming environment at the computer science I level. J. Edu. Comput. Res. 36(2), 223–244 (2007)CrossRefGoogle Scholar
  5. 5.
    Yadin, A.: Reducing the dropout rates in an introductory programming course. ACM Inroads 2(4), 71–76 (2011)CrossRefGoogle Scholar
  6. 6.
    Watson, C., Li, F.W.B.: Failure rates in introductory programming revisited. In: Proceedings of ITiCSE, ACM, Uppsala, Sweden (2014)Google Scholar
  7. 7.
    Zingaro, D.: Examing interest and grades in computer science 1: a study of pedagogy and achievement goals. Trans. Comput. Edu. 15(3). ACM (2015)Google Scholar
  8. 8.
    De Raadt, M.: Teaching programming strategies explicitly to novice programmers’. Ph.D. thesis, University of Southern Queensland, Australia. Retrieved June 2013, USQ ePrints (2008)Google Scholar
  9. 9.
    Webster, M.: Overview of Programming and Problem Solving, Merriam-Webster’s Collegiate Dictionary, 10th edn. Retrieved on 15 July 2013, (1994)
  10. 10.
    Kölling, M., Rosenberg, J.: 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, MO, USA (1996)Google Scholar
  11. 11.
    Ala-Mutka, K.: Problems in learning and teaching programming—a literature study for developing visualizations in the codewitz-minerva project. Codewitz Needs Anal. Retrieved 20 Dec 2013, (2004)
  12. 12.
    Iqbal, S., Harsh, O.K.: A self review and external review model for teaching and assessing novice programmers. Int. J. Inf. Edu. Technol. 3(2), 120–123 (2013)Google Scholar
  13. 13.
    Koulouri, T., Lauria, S., Macredie, R.D.: Teaching introductory programming: a quantitative evaluation of different approaches. Trans. Comput. Edu. 14(4). ACM (2015)Google Scholar
  14. 14.
    Allan, V.H., Kolesar, M.V.: Teaching computer science: a problem solving approach that works. SIGCUE outlook, ACM 25(1–2), 2–10 (1997)CrossRefGoogle Scholar
  15. 15.
    Yoo, J., Yoo, S., Seo, S., Dong, Z., Pettey, C.: Can we teach algorithm development skills?. In: Proceedings of the 50th Annual Southeast Regional Conference, pp. 101–105, ACM, New York (2012)Google Scholar
  16. 16.
    ACM-IEEE Joint Task Force on Computing Curricula: Computer Science Curricula 2013, ACM Press and IEEE Computer Society press. (2013)
  17. 17.
    Australian Computer Society: The ICT Profession Body of Knowledge. Retrieved 25 Sep 2015, (2013)
  18. 18.
    De Raadt, M., Toleman, M., Watson, R.: Textbooks Under Inspection, University of Southern Queensland, Australia. Retrieved May 2013, (2005)
  19. 19.
    Winslow, L.E.: Programming pedagogy—a psychological overview. ACM SIGCSE Bull. 28(3), 17–22 (1996)CrossRefGoogle Scholar
  20. 20.
    Soloway, E.: Learning to program = learning to construct mechanisms and explanations. Commun. ACM 29(9), 850–858 (1986)CrossRefGoogle Scholar
  21. 21.
    Hyde, D.C., Gay, B.D., Utter, D.: The integration of a problem solving process in the first course. In: Proceedings of the Tenth SIGCSE Technical Symposium on Computer Science Education, pp. 54–59, ACM, (1979)Google Scholar
  22. 22.
    Malik, I.S., Coldwell-Neilson, Jo.: A model for teaching an introductory programming course using ADRI. Edu. Inf. Technol. Springer, (2017)CrossRefGoogle Scholar
  23. 23.
    Malik, I.S.: 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, (2016)
  24. 24.
    Oda, Y., Fudaba, H., Neubig, G., Hata, H., Sakti, S., Toda, T., Nakamura, S.: 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, (2015)
  25. 25.
    Taheri, S.M., Sasaki, M., Ngetha, H.N.: Evaluating the effectiveness of problem solving techniques and tools in programming. In: Proceedings of Science and Information Conference (SAI) IEEE, (2015)
  26. 26.
    Malik, I.S., Coldwell-Neilson, J.: Impact of a new teaching and learning approach in an introductory programming course. J. Edu. Comput. Res. 55(6), 789–819. Sage (2017)CrossRefGoogle Scholar
  27. 27.
    Malik, I.S., Coldwell-Neilson, J.: Comparison of traditional and ADRI based teaching approaches in an introductory programming course. J. Inf. Technol. Edu. Res. 16, 267–283. (2017)
  28. 28.
    Malik, I.S.: Improvements in Introductory Programming Course: Action Research Insights and Outcomes. Syst. Pract. Action Res. Springer, (2018)CrossRefGoogle Scholar
  29. 29.
    Malik, I.S., Mathew, R., Chowdhury, M.U., Coldwell-Neilson, J.: Impact of assurance of learning (AOL) in programming course for novices. In: Proceedings of 2nd BCS the Chartered Institute for IT International Conference, BCS Learning and Development, United Arab Emirates (2014)Google Scholar
  30. 30.
    Malik, I.S., Coldwell-Neilson, J.: Gender differences in an introductory programming course: new teaching approach, students’ learning outcomes, and perceptions. Edu. Inf. Technol. Springer, (2018)CrossRefGoogle Scholar
  31. 31.
    Malik, I.S.: Role of ADRI model in teaching and assessing novice programmers. Ph.D. thesis, Deakin University, (2016)
  32. 32.
    Paramasivam, G., Manohar, J., Malik, I.S.: Bringing technology into the classroom: receptivity and satisfaction level of faculty members using smart board—an experimental study. In: Proceedings of International Conference on Applied Information and Communication Technology, Oman (2014)Google Scholar
  33. 33.
    Malik, I.S., Al-Emran, M.: Social factors influence on career choices for female computer science students. Int. J. Emerg. Technol. Learn. 13(5), 56–70 (2018)CrossRefGoogle Scholar
  34. 34.
    Eldow, A., Shakir, M., Abdullah, M.Y., Iqbal, S.: Using Information communication technology as a teaching tool in Sudanese Governmental Universities of Khartoum State. Int. J. Inf. Visual. 1(4), 150–156CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Buraimi University CollegeAl-BuraimiOman
  2. 2.Computer Science DepartmentTikrit UniversityTikritIraq

Personalised recommendations