Abstract
This study describes the most relevant problems and solutions found in the literature on teaching and learning of object-oriented programming (OOP). The identification of the problem was based on tertiary studies from the IEEE Xplore, Scopus, ACM Digital Library and Science Direct repositories. The problems and solutions identified were ranked through the multi-criteria decision methods DEMATEL and TOPSIS in order to determine the best solutions to the problems found and to apply these results in the academic context. The main contribution of this study was the categorization of OOP problems and solutions, as well as the proposal of strategies to improve the problem. Among the most relevant problems it was found: 1) difficulty in understanding, teaching and implementing object-orientation, 2) difficulties related to understanding classes and 3) difficulty in understanding object-oriented relationships. After doing the multicriteria analysis, it was found that the most important solutions to face the problems found in the teaching of OOP were: 1) use of active learning techniques and intrinsic rewards and 2) emphasize on basic programming concepts and introduce the object-oriented paradigm at an early point in the curriculum. As a conclusion, it was evidenced that there is coherence between the literary guarantee that gives support to the problems and solutions in the teaching of OOP presented in this study and the approaches that experts in the area of development highlight as relevant when they identify weaknesses in the process.






Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Abbasi, S., Kazi, H., & Khowaja, K. (2017). A systematic review of learning object oriented programming through serious games and programming approaches. 2017 4th IEEE International Conference on Engineering Technologies and Applied Sciences (ICETAS), 2018-Janua, 1–6. https://doi.org/10.1109/ICETAS.2017.8277894
Aldowah, H., Al-Samarraie, H., Alzahrani, A. I., & Alalwan, N. (2020). Factors affecting student dropout in MOOCs: a cause and effect decision-making model. Journal of Computing in Higher Education, 32(2), 429–454. https://doi.org/10.1007/s12528-019-09241-y
Alzahrani, A. I., Al-Samarraie, H., Eldenfria, A., & Alalwan, N. (2018). A DEMATEL method in identifying design requirements for mobile environments: students’ perspectives. Journal of Computing in Higher Education, 30(3), 466–488. https://doi.org/10.1007/s12528-018-9176-2
Anniroot, J., & de Villiers, M. R. (2012). A study of Alice: A visual environment for teaching object-oriented programming. Proceedings of the IADIS International Conference on Information Systems 2012, 2, 251–258.
Arif, E. M. (2000). A methodology for teaching object-oriented programming concepts in an advanced programming course. ACM SIGCSE Bulletin, 32(2), 30–34. https://doi.org/10.1145/355354.355367
Azmi, S., Iahad, N. A., & Ahmad, N. (2016). Attracting students’ engagement in programming courses with gamification. 2016 IEEE Conference on E-Learning, e-Management and e-Services (IC3e), 112–115. https://doi.org/10.1109/IC3e.2016.8009050
Barr, M., Holden, S., Phillips, D., & Greening, T. (1999). An exploration of novice programming errors in an object-oriented environment. Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education - ITiCSE-WGR ’99, Part F1291(4), 42–46. https://doi.org/10.1145/349316.349392
Benander, A., Benander, B., & Sang, J. (2004). Factors related to the difficulty of learning to program in Java—an empirical study of non-novice programmers. Information and Software Technology, 46(2), 99–107. https://doi.org/10.1016/S0950-5849(03)00112-5
Berges, M., Mühling, A., & Hubwieser, P. (2012). The gap between knowledge and ability. Proceedings of the 12th Koli Calling International Conference on Computing Education Research - Koli Calling ’12, 126–134. https://doi.org/10.1145/2401796.2401812
Biddle, R., & Tempero, E. (1998). Teaching programming by teaching principles of reusability. Information and Software Technology, 40(4), 203–209. https://doi.org/10.1016/S0950-5849(98)00040-8
Bishop-Clark, C. (1995). Cognitive style, personality, and computer programming. Computers in Human Behavior, 11(2), 241–260. https://doi.org/10.1016/0747-5632(94)00034-F
Black, A. P., Bruce, K. B., Homer, M., Noble, J., Ruskin, A., & Yannow, R. (2013). Seeking Grace: A New Object-Oriented Language for Novices. Proceeding of the 44th ACM Technical Symposium on Computer Science Education - SIGCSE ’13, 129. https://doi.org/10.1145/2445196.2445240
Brereton, P., Kitchenham, B. A., Budgen, D., Turner, M., & Khalil, M. (2007). Lessons from applying the systematic literature review process within the software engineering domain. Journal of Systems and Software, 80(4), 571–583. https://doi.org/10.1016/j.jss.2006.07.009
Cetin, I. (2013). Visualization: a tool for enhancing students’ concept images of basic object-oriented concepts. Computer Science Education, 23(1), 1–23. https://doi.org/10.1080/08993408.2012.760903
Dale, N. B. (2006). Most difficult topics in CS1: Results of an Online Survey of Educators. ACM SIGCSE Bulletin, 38(2), 49–53. https://doi.org/10.1145/1138403.1138432
Dorn, N., Berges, M., Capovilla, D., & Hubwieser, P. (2018). Talking at Cross Purposes - Perceived Learning Barriers by Students and Teachers in Programming Education. Proceedings of the 13th Workshop in Primary and Secondary Computing Education, 1–4. https://doi.org/10.1145/3265757.3265769
Draz, A., Abdennadher, S., & Abdelrahman, Y. (2016). Kodr: A Customizable Learning Platform for Computer Science Education. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics): Vol. 9891 LNCS (pp. 579–582). https://doi.org/10.1007/978-3-319-45153-4_67
Espinosa, F. F., & Salinas, G. E. (2013). Selección de Estrategias de Mejoramiento de las Condiciones de Trabajo para la Función Mantenimiento Utilizando la Metodología MCDA Constructivista. Información Tecnológica, 24(3), 57–72. https://doi.org/10.4067/S0718-07642013000300008
Fedorowicz, J., & Villeneuve, A. O. (1999). Surveying object technology usage and benefits: A test of conventional wisdom. Information & Management, 35(6), 331–344. https://doi.org/10.1016/S0378-7206(98)00098-6
García Perez-Schofield, J. B., García Roselló, E., Ortín Soler, F., & Pérez Cota, M. (2008). Visual Zero: A persistent and interactive object-oriented programming environment. Journal of Visual Languages & Computing, 19(3), 380–398. https://doi.org/10.1016/j.jvlc.2007.11.002
Gómez, J. C. O., Tabares-Urrea, N., & Ramírez-Flórez, G. (2020). AHP difuso para la selección de un proveedor 3PL considerando el riesgo operacional. Revista EIA, 17(33), 1–17. https://doi.org/10.24050/reia.v17i33.1329
Gorschek, T., Tempero, E., & Angelis, L. (2010). A large-scale empirical study of practitioners’ use of object-oriented concepts. Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - ICSE ’10, 1, 115. https://doi.org/10.1145/1806799.1806820
Govender, I. (2009). The learning context: Influence on learning to program. Computers & Education, 53(4), 1218–1230. https://doi.org/10.1016/j.compedu.2009.06.005
Guerrero, C. A., Gutiérrez, L. E., & Cuervo, K. D. (2020). Los videojuegos como estrategia para incrementar la motivación y alcance de logros en procesos de aprendizaje. Memorias La Formación de Ingenieros: Un Compromiso Para El Desarrollo y La Sostenibilidad, 1–9. https://acofipapers.org/index.php/eiei/article/view/750/755
Hadar, I. (2013). When intuition and logic clash: The case of the object-oriented paradigm. Science of Computer Programming, 78(9), 1407–1426. https://doi.org/10.1016/j.scico.2012.10.006
Hosanee, Y., & Panchoo, S. (2015). An enhanced software tool to aid novices in learning Object Oriented Programming (OOP). 2015 International Conference on Computing, Communication and Security (ICCCS), 1–7. https://doi.org/10.1109/CCCS.2015.7374197
Hubwieser, P., & Mühling, A. (2011). What students (should) know about object oriented programming. Proceedings of the Seventh International Workshop on Computing Education Research - ICER ’11, 77. https://doi.org/10.1145/2016911.2016929
Hundley, J. (2008). A review of using design patterns in CS1. Proceedings of the 46th Annual Southeast Regional Conference on XX - ACM-SE 46, 30. https://doi.org/10.1145/1593105.1593113
Ismail, M. E., Sa’adan, N., Samsudin, M. A., Hamzah, N., Razali, N., & Mahazir, I. I. (2018). Implementation of The Gamification Concept Using KAHOOT! Among TVET Students: An Observation. Journal of Physics: Conference Series, 1140(1), 1–8. https://doi.org/10.1088/1742-6596/1140/1/012013
Jeong, J. S., & Ramírez-Gómez, Á. (2018). Optimizing the location of a biomass plant with a fuzzy-DEcision-MAking Trial and Evaluation Laboratory (F-DEMATEL) and multi-criteria spatial decision assessment for renewable energy management and long-term sustainability. Journal of Cleaner Production, 182, 509–520. https://doi.org/10.1016/j.jclepro.2017.12.072
Jiang, K., Maniotes, J., & Kamali, R. (2004). A different approach of teaching introductory visual basic course. Proceedings of the 5th Conference on Information Technology Education - CITC5 ’04, 219–223. https://doi.org/10.1145/1029533.1029586
Jordine, T., Liang, Y., & Ihler, E. (2015). A Mobile Device Based Serious Gaming Approach for Teaching and Learning Java Programming. International Journal of Interactive Mobile Technologies (IJIM), 9(1), 53–59. https://doi.org/10.3991/ijim.v9i1.4380
Karahasanović, A., Levine, A. K., & Thomas, R. (2007). Comprehension strategies and difficulties in maintaining object-oriented systems: An explorative study. Journal of Systems and Software, 80(9), 1541–1559. https://doi.org/10.1016/j.jss.2006.10.041
Kiss, G. (2013). Teaching Programming in the Higher Education not for Engineering Students. Procedia - Social and Behavioral Sciences, 103, 922–927. https://doi.org/10.1016/j.sbspro.2013.10.414
Kitchenham, B., Brereton, P., Budgen, D., Turner, M., Bailey, J., & Linkman, S. (2007). Protocol for a Tertiary study of Systematic Literature Reviews and Evidence-based Guidelines in IT and Software Engineering. https://www.semanticscholar.org/paper/Protocol-for-a-Tertiary-study-of-Systematic-Reviews-Kitchenham-Brereton/bf3910a40028240b821790738896954638932e33#paper-header
Kitchenham, B., & Charters, S. (2007). Guidelines for performing Systematic Literature Reviews in Software Engineering. https://www.elsevier.com/__data/promis_misc/525444systematicreviewsguide.pdf
Krpan, D., Mladenović, S., & Rosić, M. (2015). Undergraduate Programming Courses, Students’ Perception and Success. Procedia - Social and Behavioral Sciences, 174, 3868–3872. https://doi.org/10.1016/j.sbspro.2015.01.1126
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, 16(1), 1–26. https://doi.org/10.1145/2785807
Lewis, T. L., Rosson, M. B., & Pérez-Quiñones, M. A. (2004). What do the experts say? Teaching Introductory Design from an Expert’s Perspective. ACM SIGCSE Bulletin, 36(1), 296–300. https://doi.org/10.1145/1028174.971405
López-Ospina, H., Quezada, L. E., Barros-Castro, R. A., Gonzalez, M. A., & Palominos, P. I. (2017). A method for designing strategy maps using DEMATEL and linear programming. Management Decision, 55(8), 1802–1823. https://doi.org/10.1108/MD-08-2016-0597
Martins, V. F., de Almeida Souza Concilio, I., & de Paiva Guimarães, M. (2018). Problem based learning associated to the development of games for programming teaching. Computer Applications in Engineering Education, 26(5), 1577–1589. https://doi.org/10.1002/cae.21968
Mazaitis, D. (1993). The object-oriented paradigm in the undergraduate curriculum: a survey of implementations and issues. ACM SIGCSE Bulletin, 25(3), 58–64. https://doi.org/10.1145/165408.165432
Moons, J., & De Backer, C. (2009). Rationale Behind the Design of the EduVisor Software Visualization Component. Electronic Notes in Theoretical Computer Science, 224(C), 57–65. https://doi.org/10.1016/j.entcs.2008.12.049
Moons, J., & De Backer, C. (2013). The design and pilot evaluation of an interactive learning environment for introductory programming influenced by cognitive load theory and constructivism. Computers & Education, 60(1), 368–384. https://doi.org/10.1016/j.compedu.2012.08.009
Moussa, W. E., Almalki, R. M., Alamoudi, M. A., & Allinjawi, A. (2016). Proposing a 3d interactive visualization tool for learning oop concepts. 2016 13th Learning and Technology Conference (L&T), 1–7. https://doi.org/10.1109/LT.2016.7562861
Musil, M., & Richta, K. (2017). Contribution to Teaching Programming Based on “Object-First” Style at College of Polytechnics Jihlava. Advances in Intelligent Systems and Computing, 511 AISC, 219–228. https://doi.org/10.1007/978-3-319-46535-7_17
Nelson, H. J., Irwin, G., & Monarchi, D. E. (1997). Journeys up the mountain: Different paths to learning object-oriented programming. Accounting, Management and Information Technologies, 7(2), 53–85. https://doi.org/10.1016/S0959-8022(96)00024-0
Olsson, M., & Mozelius, P. (2015). Visualization of concepts and algorithms in programming education - A design theoretic multimodal perspective. Proceedings of the International Conference on E-Learning, ICEL, 2015-Janua(June), 257–264.
Pei, T., Shih, H., Zheng, W., Skelton, G., & Leggette, E. (2010). Integrating Self Regulating Learning With An Object Oriented Programming Course. 2010 Annual Conference & Exposition Proceedings, 15.770.1-15.770.13. https://doi.org/10.18260/1-2--16444
Piteira, M., Costa, C. J., & Aparicio, M. (2017). CANOE e Fluxo: Determinantes na adoção de curso de programação online gamificado. RISTI - Revista Ibérica de Sistemas e Tecnologias de Informação, 25(25), 34–53. https://doi.org/10.17013/risti.25.34-53
Popat, S., & Starkey, L. (2019). Learning to code or coding to learn? A systematic review. Computers & Education, 128(October 2018), 365–376. https://doi.org/10.1016/j.compedu.2018.10.005
Qian, Y., Hambrusch, S., Yadav, A., Gretter, S., & Li, Y. (2020). Teachers’ Perceptions of Student Misconceptions in Introductory Programming. Journal of Educational Computing Research, 58(2), 364–397. https://doi.org/10.1177/0735633119845413
Qian, Y., & Lehman, J. (2017). Students’ Misconceptions and Other Difficulties in Introductory Programming. ACM Transactions on Computing Education, 18(1), 1–24. https://doi.org/10.1145/3077618
Radenski, A. (2006). “Python First”: A Lab-Based Digital Introduction to Computer Science. Proceedings of the 11th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education - ITICSE ’06, 197–201. https://doi.org/10.1145/1140124.1140177
Rajashekharaiah, K. M. M., Pawar, M., Patil, M. S., Kulenavar, N., & Joshi, G. H. (2016). Design Thinking Framework to Enhance Object Oriented Design and Problem Analysis Skill in Java Programming Laboratory: An Experience. 2016 IEEE 4th International Conference on MOOCs, Innovation and Technology in Education (MITE), February 2018, 200–205. https://doi.org/10.1109/MITE.2016.048
Sajaniemi, J., Byckling, P., & Gerdt, P. (2007). Animation Metaphors for Object-Oriented Concepts. Electronic Notes in Theoretical Computer Science, 178(1), 15–22. https://doi.org/10.1016/j.entcs.2007.01.037
Sanders, K., Boustedt, J., Eckerdal, A., McCartney, R., Moström, J. E., Thomas, L., & Zander, C. (2008). Student understanding of object-oriented programming as expressed in concept maps. Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education - SIGCSE ’08, 332–336. https://doi.org/10.1145/1352135.1352251
Sarkar, S. P., Sarker, B., & Hossain, S. K. A. (2016). Cross platform interactive programming learning environment for kids with edutainment and gamification. 2016 19th International Conference on Computer and Information Technology (ICCIT), 218–222. https://doi.org/10.1109/ICCITECHN.2016.7860198
Seng, W. Y., & Yatim, M. H. M. (2014). Computer Game as Learning and Teaching Tool for Object Oriented Programming in Higher Education Institution. Procedia - Social and Behavioral Sciences, 123, 215–224. https://doi.org/10.1016/j.sbspro.2014.01.1417
Sheetz, S. D. (2002). Identifying the difficulties of object-oriented development. Journal of Systems and Software, 64(1), 23–36. https://doi.org/10.1016/S0164-1212(02)00019-5
Sheetz, S. D., Irwin, G., Tegarden, D. P., Nelson, H. J., & Monarchi, D. E. (1997). Exploring the Difficulties of Learning Object-Oriented Techniques. Journal of Management Information Systems, 14(2), 103–131. https://doi.org/10.1080/07421222.1997.11518167
Sien, V. Y. (2011). Implementation of the Concept-Driven Approach in an Object-Oriented Analysis and Design Course. In 2013 12th International Conference on Environment and Electrical Engineering: Vol. 6627 LNCS (pp. 55–69). IEEE. https://doi.org/10.1007/978-3-642-21210-9_6
Sien, V. Y., & Chong, D. W. K. (2011). Threshold concepts in object-oriented modelling. Electronic Communications of the EASST, 52, 1–11. https://doi.org/10.14279/tuj.eceasst.52.763
Streib, J. T., & Soma, T. (2010). Using contour diagrams and JIVE to illustrate object-oriented semantics in the Java programming language. Proceedings of the 41st ACM Technical Symposium on Computer Science Education - SIGCSE ’10, 510–514. https://doi.org/10.1145/1734263.1734435
Sun, R., Zhang, B., & Liu, T. (2016). Ranking web service for high quality by applying improved Entropy-TOPSIS method. 2016 17th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), 249–254. https://doi.org/10.1109/SNPD.2016.7515909
Tahat, K. (2014). An Innovative Instructional Method for Teaching Object-Oriented Modelling. International Arab Journal of Information Technology, 11(November), 540–549.
Tan, J., Guo, X., Zheng, W., & Zhong, M. (2014). Case-based teaching using the Laboratory Animal System for learning C/C++ programming. Computers & Education, 77, 39–49. https://doi.org/10.1016/j.compedu.2014.04.003
Tegarden, D. P., & Sheetz, S. D. (2001). Cognitive activities in OO development. International Journal of Human-Computer Studies, 54(6), 779–798. https://doi.org/10.1006/ijhc.1999.0462
Thomasson, B. J., Ratcliffe, M. B., & Thomas, L. A. (2006). Improving the tutoring of software design using case-based reasoning. Advanced Engineering Informatics, 20(4), 351–362. https://doi.org/10.1016/j.aei.2006.07.002
Turner, S., Pérez-Quiñones, M. A., Edwards, S., & Chase, J. (2010). Peer Review in CS2: Conceptual Learning. Proceedings of the 41st ACM Technical Symposium on Computer Science Education - SIGCSE ’10, 331. https://doi.org/10.1145/1734263.1734379
Van Eck, N. J., & Waltman, L. (2010). Software survey: VOSviewer, a computer program for bibliometric mapping. Scientometrics, 84(2), 523–538. https://doi.org/10.1007/s11192-009-0146-3
Xinogalos, S. (2015). Object-Oriented Design and Programming. ACM Transactions on Computing Education, 15(3), 1–21. https://doi.org/10.1145/2700519
Yang, J., Lee, Y., & Chang, K. H. (2018). Evaluations of JaguarCode: A web-based object-oriented programming environment with static and dynamic visualization. Journal of Systems and Software, 145(May), 147–163. https://doi.org/10.1016/j.jss.2018.07.037
Yang, T.-C., Chen, S. Y., & Hwang, G.-J. (2015). The influences of a two-tier test strategy on student learning: A lag sequential analysis approach. Computers & Education, 82(1), 366–377. https://doi.org/10.1016/j.compedu.2014.11.021
Yi, T., & Fang, C. (2018). A Novel Method of Complexity Metric for Object-Oriented Software. International Journal of Digital Multimedia Broadcasting, 2018(6), 1–9. https://doi.org/10.1155/2018/7624768
Zainal, N. F. A., Shahrani, S., Yatim, N. F. M., Rahman, R. A., Rahmat, M., & Latih, R. (2012). Students’ Perception and Motivation Towards Programming. Procedia - Social and Behavioral Sciences, 59, 277–286. https://doi.org/10.1016/j.sbspro.2012.09.276
Zhang, J., Caldwell, E. R., & Smith, E. (2013). Learning the concept of Java inheritance in a game. Proceedings of CGAMES’2013 USA, 212–216. https://doi.org/10.1109/CGames.2013.6632635
Zhang, X., Crabtree, J. D., Terwilliger, M. G., & Redman, T. T. (2018). Assessing Students’ Object-Oriented Programming Skills with Java: The “Department-Employee” Project. Journal of Computer Information Systems, 60(3), 1–13. https://doi.org/10.1080/08874417.2018.1467243
Zhang, Y., Zhang, F., Zhu, H., & Guo, P. (2019). An Optimization-Evaluation Agricultural Water Planning Approach Based on Interval Linear Fractional Bi-Level Programming and IAHP-TOPSIS. Water, 11(5), 1–22. https://doi.org/10.3390/w11051094
Acknowledgements
This work was carried out with the assistance provided by Universidad Santo Tomás, Universidad del Norte and the program "Convocatoria de Doctorados Nacionales 785 de 2017". The authors would like to thank Universidad Santo Tomás and Universidad del Norte for allowing the articulation of an interdisciplinary team for the research project development. Thanks are extended to the experts who provided their valuable contributions.
Availability of data and materials
Not applicable.
Code availability
Not applicable.
Funding
Universidad Santo Tomás. CAFP 002 SIST.2018-2 and Convocatoria Doctorados Nacionales 785. The funding bodies participated in the design of the study and collection, analysis, and interpretation of data and in writing the manuscript.
Author information
Authors and Affiliations
Contributions
Luz E. Gutiérrez: Conceptualization, Methodology, Software, Formal analysis, Investigation, Writing - Original Draft, Writing - Review & Editing.
Carlos A. Guerrero: Conceptualization, Methodology, Investigation, Writing - Original Draft, Writing - Review & Editing, Supervision.
Héctor A. López-Ospina: Methodology, Formal analysis, Writing - Review & Editing.
Corresponding author
Ethics declarations
Conflicts of interest/Competing interests
The authors declare that they have no competing interests.
Ethics approval
Not applicable.
Consent to participate
Not applicable.
Consent for publication
Not applicable.
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
Gutiérrez, L.E., Guerrero, C.A. & López-Ospina, H.A. Ranking of problems and solutions in the teaching and learning of object-oriented programming. Educ Inf Technol 27, 7205–7239 (2022). https://doi.org/10.1007/s10639-022-10929-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10639-022-10929-5