Educational Insights from Code: Mapping Learning Challenges in Object-Oriented Programming through Code-Based Evidence
Abstract
Object-Oriented programming is frequently challenging for undergraduate Computer Science students, particularly in understanding abstract concepts such as encapsulation, inheritance, and polymorphism. Although the literature outlines various methods to identify potential design and coding issues in object-oriented programming through source code analysis, such as code smells and SOLID principles, few studies explore how these code-level issues relate to learning difficulties in Object-Oriented Programming. In this study, we explore the relationship of the code issue indicators with common challenges encountered during the learning of object-oriented programming. Using qualitative analysis, we identified the main categories of learning difficulties and, through a literature review, established connections between these difficulties, code smells, and violations of the SOLID principles. As a result, we developed a conceptual map that links code-related issues to specific learning challenges in Object-Oriented Programming. The model was then evaluated by an expert who applied it in the analysis of the student code to assess its relevance and applicability in educational contexts.
Keywords:
object-oriented programming, code quality, learning challenges, code analysis, code smells, SOLID
References
Péricles Alves, Eduardo Figueiredo, and Fabiano Ferrari. 2014. Avoiding code pitfalls in aspect-oriented programming. In Programming Languages: 18th Brazilian Symposium, SBLP 2014, Maceio, Brazil, October 2-3, 2014. Proceedings 18. Springer, 31–46.
Laurence Bardin. 2011. Content analysis. São Paulo: Edições 70, 279 (2011), 978–8562938047.
Katrin Becker. 2003. Grading programming assignments using rubrics. In Proceedings of the 8th annual conference on Innovation and technology in computer science education. 253–253.
Alan Benander, Barbara Benander, and Janche Sang. 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 (2004), 99–107.
Soly Mathew Biju. 2013. Difficulties in understanding object oriented programming concepts. In Innovations and Advances in Computer, Information, Systems Sciences, and Engineering. Springer, 319–326.
William H Brown, Raphael C Malveau, Hays W" Skip" McCormick, and Thomas J Mowbray. 1998. AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc.
Omar Freddy Chamorro Atalaya. 2020. Analysis of Learning Difficulties in Object Oriented Programming in Systems Engineering Students at UNTELS. (2020).
Chin Soon Cheah. 2020. Factors contributing to the difficulties in teaching and learning of computer programming: A literature review. Contemporary Educational Technology 12, 2 (2020), ep272.
Martin Fowler. 2018. Refactoring: improving the design of existing code. Addison-Wesley Professional.
Tony Gorschek, Ewan Tempero, and Lefteris Angelis. 2010. A large-scale empirical study of practitioners’ use of object-oriented concepts. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. 115–124.
Michaela Greiler, Arie Van Deursen, and Margaret-Anne Storey. 2013. Automated detection of test fixture strategies and smells. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation. IEEE, 322–331.
Luz E. Gutiérrez, Carlos A. Guerrero, and Héctor A. López-Ospina. 2022. Ranking of problems and solutions in the teaching and learning of object-oriented programming. Education and Information Technologies 27, 5 (June 2022), 7205–7239. DOI: 10.1007/s10639-022-10929-5
Irit Hadar. 2013. When intuition and logic clash: The case of the object-oriented paradigm. Science of Computer Programming 78, 9 (2013), 1407–1426.
R Wayne Hamm, Kenneth D Henderson Jr, Marilyn L Repsher, and Kathleen M Timmer. 1983. A tool for program grading: The Jacksonville University scale. In Proceedings of the fourteenth SIGCSE technical symposium on Computer science education. 248–252.
Benedikt Hauptmann, Maximilian Junker, Sebastian Eder, Lars Heinemann, Rudolf Vaas, and Peter Braun. 2013. Hunting for smells in natural language tests. In 2013 35th International Conference on Software Engineering (ICSE). IEEE, 1217–1220.
Simon Holland, Robert Griffiths, and Mark Woodman. 1997. Avoiding object misconceptions. ACM Sigcse Bulletin 29, 131–134. DOI: 10.1145/268084.268132
James W Howatt. 1994. On criteria for grading student programs. ACM SIGCSE Bulletin 26, 3 (1994), 3–7.
Peter Hubwieser and Andreas Mühling. 2011. What students (should) know about object oriented programming. In Proceedings of the seventh international workshop on Computing education research. 77–84.
International Organization for Standardization 2014. ISO/IEC 25000:2014 - Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Guide to SQuaRE. International Organization for Standardization, Geneva, Switzerland. Disponível em: [link], Acesso em: 12 ago. 2024.
Mohd Nasir Ismail, Nor Azilah Ngah, and Irfan Naufal Umar. 2010. Instructional strategy in the teaching of computer programming: a need assessment analyses. The Turkish Online Journal of Educational Technology 9, 2 (2010), 125–131.
Amela Karahasanović, Annette Kristin Levine, and Richard Thomas. 2007. Comprehension strategies and difficulties in maintaining object-oriented systems: An explorative study. Journal of Systems and Software 80, 9 (2007), 1541–1559.
Joshua Kerievsky. 2005. Refactoring to patterns. Pearson Deutschland GmbH.
Hieke Keuning, Johan Jeuring, and Bastiaan Heeren. 2023. A Systematic Mapping Study of Code Quality in Education. In Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1 (Turku, Finland) (ITiCSE 2023). Association for Computing Machinery, New York, NY, USA, 5–11. DOI: 10.1145/3587102.3588777
Michael Kölling. 1999. The problem of teaching object-oriented programming, Part 1: Languages. Journal of Object-oriented programming 11, 8 (1999), 8–15.
Mario Konecki. 2014. Problems in programming education and means of their improvement. DAAAM international scientific book 2014 (2014), 459–470.
Klaus Krippendorff. 2018. Content analysis: An introduction to its methodology. Sage publications, Thousand Oaks, California.
Guilherme Lacerda, Fabio Petrillo, Marcelo Pimenta, and Yann Gaël Guéhéneuc. 2020. Code smells and refactoring: A tertiary systematic review of challenges and observations. Journal of Systems and Software 167 (2020), 110610.
Essi Lahtinen, Kirsti Ala-Mutka, and Hannu-Matti Järvinen. 2005. A study of the difficulties of novice programmers. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (Caparica, Portugal) (ITiCSE ’05). Association for Computing Machinery, New York, NY, USA, 14–18. DOI: 10.1145/1067445.1067453
Tracy L Lewis, Mary Beth Rosson, and Manuel A Pérez-Quiñones. 2004. What Do The Experts Say? teaching introductory design from an expert’s perspective. ACM SIGCSE Bulletin 36, 1 (2004), 296–300.
Karl J. Lieberherr and Ian M. Holland. 1989. Assuring good style for objectoriented programs. IEEE software 6, 5 (1989), 38–48.
Barbara H Liskov and Jeannette M Wing. 1994. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems (TOPLAS) 16, 6 (1994), 1811–1841.
John Long. 2001. Software reuse antipatterns. ACM SIGSOFT Software Engineering Notes 26, 4 (2001), 68–76.
Isela Macia Bertran, Alessandro Garcia, and Arndt Von Staa. 2011. An exploratory study of code smells in evolving aspect-oriented systems. In Proceedings of the tenth international conference on Aspect-oriented software development. 203–214.
Mika Mantyla, Jari Vanhanen, and Casper Lassenius. 2003. A taxonomy and an initial empirical study of bad smells in code. In International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. IEEE, 381–384.
Klaus Marquardt. 2001. Dependency Structures Ñ Architectural Diagnoses and Therapies.. In EuroPLoP. Citeseer, 11–52.
Micah Martin and Robert C Martin. 2006. Agile principles, patterns, and practices in C. Pearson Education.
Valéria F Martins, Ilana de Almeida Souza Concilio, and Marcelo de Paiva Guimarães. 2018. Problem based learning associated to the development of games for programming teaching. Computer Applications in Engineering Education 26, 5 (2018), 1577–1589.
D. Mazaitis. 1993. The object-oriented paradigm in the undergraduate curriculum: a survey of implementations and issues. ACM SIGCSE Bulletin 25, 3 (1993), 58–64. DOI: 10.1145/165408.165432
Robert Moser. 1997. A fantasy adventure game as a learning environment: why learning to program is so difficult and what can be done about it. In Proceedings of the 2nd conference on Integrating technology into computer science education (ITiCSE ’97). Association for Computing Machinery, New York, NY, USA, 114–116. DOI: 10.1145/268819.268853
Wejdan Eissa Moussa, Raniyah Mutlaq Almalki, Maryam Abdulrahman Alamoudi, and Arwa Allinjawi. 2016. Proposing a 3d interactive visualization tool for learning oop concepts. In 2016 13th Learning and Technology Conference (L&T). IEEE, 1–7.
Hung Viet Nguyen, Hoan Anh Nguyen, Tung Thanh Nguyen, Anh Tuan Nguyen, and Tien N Nguyen. 2012. Detection of embedded code smells in dynamic web applications. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. 282–285.
Rachel Or-Bach and Ilana Lavy. 2004. Cognitive activities of abstraction in object orientation: an empirical study. SIGCSE Bull. 36, 2 (jun 2004), 82–86. DOI: 10.1145/1024338.1024378
KMM Rajashekharaiah, Manjula Pawar, Mahesh S Patil, Nagaratna Kulenavar, and GH Joshi. 2016. Design thinking framework to enhance object oriented design and problem analysis skill in Java programming laboratory: An experience. In 2016 IEEE 4th International Conference on MOOCs, Innovation and Technology in Education (MITE). IEEE, 200–205.
Arthur J Riel. 1996. Object-oriented design heuristics. Addison-Wesley Longman Publishing Co., Inc.
Kate Sanders, Jonas Boustedt, Anna Eckerdal, Robert McCartney, Jan Erik Moström, Lynda Thomas, and Carol Zander. 2008. Student understanding of object-oriented programming as expressed in concept maps. In Proceedings of the 39th SIGCSE technical symposium on Computer science education. 332–336.
Tushar Sharma and Diomidis Spinellis. 2018. A survey on software smells. Journal of Systems and Software 138 (2018), 158–173.
Steven D Sheetz, Gretchen Irwin, David P Tegarden, H James Nelson, and David E Monarchi. 1997. Exploring the difficulties of learning object-oriented techniques. Journal of Management Information Systems 14, 2 (1997), 103–131.
Ven Sien and David Chong. 2012. Threshold concepts in object-oriented modelling. Electronic Communications of the EASST 52 (2012).
Lon Smith and Jose Cordova. 2005. Weighted primary trait analysis for computer program evaluation. Journal of Computing Sciences in Colleges 20, 6 (2005), 14–19.
Ian Sommerville. 2015. Software Engineering (10th ed.). Pearson.
Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers. 2014. Towards an empirically validated model for assessment of code quality. In Proceedings of the 14th Koli Calling international conference on computing education research. 99–108.
Girish Suryanarayana, Ganesh Samarthyam, and Tushar Sharma. 2014. Refactoring for software design smells: managing technical debt. Morgan Kaufmann.
Phit-Huan Tan, Choo-Yee Ting, and Siew-Woei Ling. 2009. Learning difficulties in programming courses: undergraduates’ perspective and perception. In 2009 International Conference on Computer Technology and Development, Vol. 1. IEEE, 42–46.
David P Tegarden and Steven D Sheetz. 2001. Cognitive activities in OO development. International Journal of Human-Computer Studies 54, 6 (2001), 779–798.
David Thomas and Andrew Hunt. 2019. The Pragmatic Programmer: your journey to mastery. Addison-Wesley Professional.
Benjy Thomasson, Mark Ratcliffe, and Lynda Thomas. 2006. Identifying novice difficulties in object oriented design. ACM SIGCSE Bulletin 38, 3 (2006), 28–32.
Santiago A Vidal, Claudia Marcos, and J Andrés Díaz-Pace. 2016. An approach to prioritize code smells for refactoring. Automated Software Engineering 23 (2016), 501–532.
William C Wake. 2004. Refactoring workbook. Addison-Wesley Professional.
C. Watson and F. W. B. Li. 2014. Failure rates in introductory programming revisited. In Proceedings of the 2014 conference on Innovation & technology in computer science education - ITiCSE ’14. ACM Press, New York, New York, USA, 39–44. DOI: 10.1145/2591708.2591749
Stelios Xinogalos. 2015. Object-oriented design and programming: an investigation of novices’ conceptions on objects and classes. ACM Transactions on Computing Education (TOCE) 15, 3 (2015), 1–21.
Jeong Yang, Young Lee, and Kai H Chang. 2018. Evaluations of JaguarCode: A web-based object-oriented programming environment with static and dynamic visualization. Journal of Systems and Software 145 (2018), 147–163.
Laurence Bardin. 2011. Content analysis. São Paulo: Edições 70, 279 (2011), 978–8562938047.
Katrin Becker. 2003. Grading programming assignments using rubrics. In Proceedings of the 8th annual conference on Innovation and technology in computer science education. 253–253.
Alan Benander, Barbara Benander, and Janche Sang. 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 (2004), 99–107.
Soly Mathew Biju. 2013. Difficulties in understanding object oriented programming concepts. In Innovations and Advances in Computer, Information, Systems Sciences, and Engineering. Springer, 319–326.
William H Brown, Raphael C Malveau, Hays W" Skip" McCormick, and Thomas J Mowbray. 1998. AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc.
Omar Freddy Chamorro Atalaya. 2020. Analysis of Learning Difficulties in Object Oriented Programming in Systems Engineering Students at UNTELS. (2020).
Chin Soon Cheah. 2020. Factors contributing to the difficulties in teaching and learning of computer programming: A literature review. Contemporary Educational Technology 12, 2 (2020), ep272.
Martin Fowler. 2018. Refactoring: improving the design of existing code. Addison-Wesley Professional.
Tony Gorschek, Ewan Tempero, and Lefteris Angelis. 2010. A large-scale empirical study of practitioners’ use of object-oriented concepts. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1. 115–124.
Michaela Greiler, Arie Van Deursen, and Margaret-Anne Storey. 2013. Automated detection of test fixture strategies and smells. In 2013 IEEE Sixth International Conference on Software Testing, Verification and Validation. IEEE, 322–331.
Luz E. Gutiérrez, Carlos A. Guerrero, and Héctor A. López-Ospina. 2022. Ranking of problems and solutions in the teaching and learning of object-oriented programming. Education and Information Technologies 27, 5 (June 2022), 7205–7239. DOI: 10.1007/s10639-022-10929-5
Irit Hadar. 2013. When intuition and logic clash: The case of the object-oriented paradigm. Science of Computer Programming 78, 9 (2013), 1407–1426.
R Wayne Hamm, Kenneth D Henderson Jr, Marilyn L Repsher, and Kathleen M Timmer. 1983. A tool for program grading: The Jacksonville University scale. In Proceedings of the fourteenth SIGCSE technical symposium on Computer science education. 248–252.
Benedikt Hauptmann, Maximilian Junker, Sebastian Eder, Lars Heinemann, Rudolf Vaas, and Peter Braun. 2013. Hunting for smells in natural language tests. In 2013 35th International Conference on Software Engineering (ICSE). IEEE, 1217–1220.
Simon Holland, Robert Griffiths, and Mark Woodman. 1997. Avoiding object misconceptions. ACM Sigcse Bulletin 29, 131–134. DOI: 10.1145/268084.268132
James W Howatt. 1994. On criteria for grading student programs. ACM SIGCSE Bulletin 26, 3 (1994), 3–7.
Peter Hubwieser and Andreas Mühling. 2011. What students (should) know about object oriented programming. In Proceedings of the seventh international workshop on Computing education research. 77–84.
International Organization for Standardization 2014. ISO/IEC 25000:2014 - Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – Guide to SQuaRE. International Organization for Standardization, Geneva, Switzerland. Disponível em: [link], Acesso em: 12 ago. 2024.
Mohd Nasir Ismail, Nor Azilah Ngah, and Irfan Naufal Umar. 2010. Instructional strategy in the teaching of computer programming: a need assessment analyses. The Turkish Online Journal of Educational Technology 9, 2 (2010), 125–131.
Amela Karahasanović, Annette Kristin Levine, and Richard Thomas. 2007. Comprehension strategies and difficulties in maintaining object-oriented systems: An explorative study. Journal of Systems and Software 80, 9 (2007), 1541–1559.
Joshua Kerievsky. 2005. Refactoring to patterns. Pearson Deutschland GmbH.
Hieke Keuning, Johan Jeuring, and Bastiaan Heeren. 2023. A Systematic Mapping Study of Code Quality in Education. In Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1 (Turku, Finland) (ITiCSE 2023). Association for Computing Machinery, New York, NY, USA, 5–11. DOI: 10.1145/3587102.3588777
Michael Kölling. 1999. The problem of teaching object-oriented programming, Part 1: Languages. Journal of Object-oriented programming 11, 8 (1999), 8–15.
Mario Konecki. 2014. Problems in programming education and means of their improvement. DAAAM international scientific book 2014 (2014), 459–470.
Klaus Krippendorff. 2018. Content analysis: An introduction to its methodology. Sage publications, Thousand Oaks, California.
Guilherme Lacerda, Fabio Petrillo, Marcelo Pimenta, and Yann Gaël Guéhéneuc. 2020. Code smells and refactoring: A tertiary systematic review of challenges and observations. Journal of Systems and Software 167 (2020), 110610.
Essi Lahtinen, Kirsti Ala-Mutka, and Hannu-Matti Järvinen. 2005. A study of the difficulties of novice programmers. In Proceedings of the 10th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education (Caparica, Portugal) (ITiCSE ’05). Association for Computing Machinery, New York, NY, USA, 14–18. DOI: 10.1145/1067445.1067453
Tracy L Lewis, Mary Beth Rosson, and Manuel A Pérez-Quiñones. 2004. What Do The Experts Say? teaching introductory design from an expert’s perspective. ACM SIGCSE Bulletin 36, 1 (2004), 296–300.
Karl J. Lieberherr and Ian M. Holland. 1989. Assuring good style for objectoriented programs. IEEE software 6, 5 (1989), 38–48.
Barbara H Liskov and Jeannette M Wing. 1994. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems (TOPLAS) 16, 6 (1994), 1811–1841.
John Long. 2001. Software reuse antipatterns. ACM SIGSOFT Software Engineering Notes 26, 4 (2001), 68–76.
Isela Macia Bertran, Alessandro Garcia, and Arndt Von Staa. 2011. An exploratory study of code smells in evolving aspect-oriented systems. In Proceedings of the tenth international conference on Aspect-oriented software development. 203–214.
Mika Mantyla, Jari Vanhanen, and Casper Lassenius. 2003. A taxonomy and an initial empirical study of bad smells in code. In International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings. IEEE, 381–384.
Klaus Marquardt. 2001. Dependency Structures Ñ Architectural Diagnoses and Therapies.. In EuroPLoP. Citeseer, 11–52.
Micah Martin and Robert C Martin. 2006. Agile principles, patterns, and practices in C. Pearson Education.
Valéria F Martins, Ilana de Almeida Souza Concilio, and Marcelo de Paiva Guimarães. 2018. Problem based learning associated to the development of games for programming teaching. Computer Applications in Engineering Education 26, 5 (2018), 1577–1589.
D. Mazaitis. 1993. The object-oriented paradigm in the undergraduate curriculum: a survey of implementations and issues. ACM SIGCSE Bulletin 25, 3 (1993), 58–64. DOI: 10.1145/165408.165432
Robert Moser. 1997. A fantasy adventure game as a learning environment: why learning to program is so difficult and what can be done about it. In Proceedings of the 2nd conference on Integrating technology into computer science education (ITiCSE ’97). Association for Computing Machinery, New York, NY, USA, 114–116. DOI: 10.1145/268819.268853
Wejdan Eissa Moussa, Raniyah Mutlaq Almalki, Maryam Abdulrahman Alamoudi, and Arwa Allinjawi. 2016. Proposing a 3d interactive visualization tool for learning oop concepts. In 2016 13th Learning and Technology Conference (L&T). IEEE, 1–7.
Hung Viet Nguyen, Hoan Anh Nguyen, Tung Thanh Nguyen, Anh Tuan Nguyen, and Tien N Nguyen. 2012. Detection of embedded code smells in dynamic web applications. In Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering. 282–285.
Rachel Or-Bach and Ilana Lavy. 2004. Cognitive activities of abstraction in object orientation: an empirical study. SIGCSE Bull. 36, 2 (jun 2004), 82–86. DOI: 10.1145/1024338.1024378
KMM Rajashekharaiah, Manjula Pawar, Mahesh S Patil, Nagaratna Kulenavar, and GH Joshi. 2016. Design thinking framework to enhance object oriented design and problem analysis skill in Java programming laboratory: An experience. In 2016 IEEE 4th International Conference on MOOCs, Innovation and Technology in Education (MITE). IEEE, 200–205.
Arthur J Riel. 1996. Object-oriented design heuristics. Addison-Wesley Longman Publishing Co., Inc.
Kate Sanders, Jonas Boustedt, Anna Eckerdal, Robert McCartney, Jan Erik Moström, Lynda Thomas, and Carol Zander. 2008. Student understanding of object-oriented programming as expressed in concept maps. In Proceedings of the 39th SIGCSE technical symposium on Computer science education. 332–336.
Tushar Sharma and Diomidis Spinellis. 2018. A survey on software smells. Journal of Systems and Software 138 (2018), 158–173.
Steven D Sheetz, Gretchen Irwin, David P Tegarden, H James Nelson, and David E Monarchi. 1997. Exploring the difficulties of learning object-oriented techniques. Journal of Management Information Systems 14, 2 (1997), 103–131.
Ven Sien and David Chong. 2012. Threshold concepts in object-oriented modelling. Electronic Communications of the EASST 52 (2012).
Lon Smith and Jose Cordova. 2005. Weighted primary trait analysis for computer program evaluation. Journal of Computing Sciences in Colleges 20, 6 (2005), 14–19.
Ian Sommerville. 2015. Software Engineering (10th ed.). Pearson.
Martijn Stegeman, Erik Barendsen, and Sjaak Smetsers. 2014. Towards an empirically validated model for assessment of code quality. In Proceedings of the 14th Koli Calling international conference on computing education research. 99–108.
Girish Suryanarayana, Ganesh Samarthyam, and Tushar Sharma. 2014. Refactoring for software design smells: managing technical debt. Morgan Kaufmann.
Phit-Huan Tan, Choo-Yee Ting, and Siew-Woei Ling. 2009. Learning difficulties in programming courses: undergraduates’ perspective and perception. In 2009 International Conference on Computer Technology and Development, Vol. 1. IEEE, 42–46.
David P Tegarden and Steven D Sheetz. 2001. Cognitive activities in OO development. International Journal of Human-Computer Studies 54, 6 (2001), 779–798.
David Thomas and Andrew Hunt. 2019. The Pragmatic Programmer: your journey to mastery. Addison-Wesley Professional.
Benjy Thomasson, Mark Ratcliffe, and Lynda Thomas. 2006. Identifying novice difficulties in object oriented design. ACM SIGCSE Bulletin 38, 3 (2006), 28–32.
Santiago A Vidal, Claudia Marcos, and J Andrés Díaz-Pace. 2016. An approach to prioritize code smells for refactoring. Automated Software Engineering 23 (2016), 501–532.
William C Wake. 2004. Refactoring workbook. Addison-Wesley Professional.
C. Watson and F. W. B. Li. 2014. Failure rates in introductory programming revisited. In Proceedings of the 2014 conference on Innovation & technology in computer science education - ITiCSE ’14. ACM Press, New York, New York, USA, 39–44. DOI: 10.1145/2591708.2591749
Stelios Xinogalos. 2015. Object-oriented design and programming: an investigation of novices’ conceptions on objects and classes. ACM Transactions on Computing Education (TOCE) 15, 3 (2015), 1–21.
Jeong Yang, Young Lee, and Kai H Chang. 2018. Evaluations of JaguarCode: A web-based object-oriented programming environment with static and dynamic visualization. Journal of Systems and Software 145 (2018), 147–163.
Published
2025-09-22
How to Cite
MENOLLI, André; STRIK, Bruno.
Educational Insights from Code: Mapping Learning Challenges in Object-Oriented Programming through Code-Based Evidence. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 39. , 2025, Recife/PE.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2025
.
p. 544-554.
ISSN 2833-0633.
DOI: https://doi.org/10.5753/sbes.2025.11095.
