Educational Insights from Code: Mapping Learning Challenges in Object-Oriented Programming through Code-Based Evidence
Andre Menolli, Bruno Strik

TL;DR
This paper investigates how code-level issues like code smells and SOLID violations relate to learning difficulties in object-oriented programming, providing a conceptual map to identify and address these challenges in educational settings.
Contribution
It introduces a novel conceptual map linking code issues to specific learning challenges in object-oriented programming, validated through expert evaluation.
Findings
Identified main categories of learning difficulties in OOP
Established connections between code smells and learning challenges
Developed and validated a conceptual map for educational use
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Teaching and Learning Programming · Software Engineering Techniques and Practices
