1 Introduction

For Martins et al. (2018) programming is the basis of a professional on systems. For such reason, it is required that programming courses are based on a model that allows putting into practice all the proposed theoretical approach. According to Popat and Starkey (2019) programming skills are 21st-century competences every person should enhance.

Martins et al. (2018) state that a learning process in the programming area should allow the student to identify a real problem and transform it into a sequence of activities that will finally be translated into a language. According to Qian et al. (2020) the teacher is the one in charge of guiding the students in this process of problem transformation, making the complexity implicit in the programming decrease and motivate them to continue. In addition, Dorn et al. (2018) affirm that although the teachers are facilitators, knowing the difficulties of a programming teaching process can allow them to implement pedagogical strategies that help the students in their training process.

Now, for Azmi et al. (2016) facilitating the teaching of algorithm design and programming is an activity that not only requires technical knowledge from the teacher, but also skills to motivate the students to overcome the obstacles that arise in their training. According to Martins et al. (2018) a non-motivated student is likely to increase the dropout statistics.

Ismail et al. (2018) state that the current teaching processes are not the most adequate, as is the case of “Teaching based solely on referring to the books seen to fail to attract the students’ interest in learning”, the authors state that “every educator should practice effective teaching methods to produce optimum outcomes. The success of a student lies in the way of teaching. Thus, it is important for teachers to study appropriate teaching methods that suit with the targeted students." Therefore, according with Draz et al. (2016) and Sarkar et al. (2016) traditional methods can create resistance in the student that will eventually be transformed into fear of programming.

In the work by Yang et al. (2015) and Qian and Lehman (2017) concepts such as variables, cycles and conditional structures are challenges for a student in training. However, in programming the most critical points are in abstract thinking and object-oriented programming (Hadar, 2013; Jordine et al., 2015; Krpan et al., 2015). A wrong training process leads the students to take a reactive attitude and to develop the idea that they do not have the ability or competences to continue in software development (Dorn et al., 2018).

More recent research work suggests that a deep knowledge of the teaching programming problems could allow the establishment of processes based on emerging methodologies such as the case of video games (Guerrero et al., 2020). These new teaching processes seek that the student generates a commitment and motivation to address the topics of study (Piteira et al., 2017).

Several paradigms such as structural programming, object-oriented programming, aspect-oriented programming, and reactive programming are identified in the programming area. This article will focus primarily on the object-oriented paradigm OOP.

Therefore, it is important to explore what factors affect the teaching and learning process of OOP within the context of every student and their environment. Thus, the following research question arises: What solutions could be prioritized in the resolution of problems in the teaching and learning of OOP?

The second section of this article describes the methods and materials used to identify and prioritize the OOP problem. The results section presents the most important findings related to the problem. The discussion section relates the observations of experts involved in the research and analysis of the results. Finally, the conclusions consolidate the contributions of the study.

2 Material and methods

2.1 Procedure for identifying OOP problems and solutions

A systematic literature review was carried out in order to identify the problems and solutions present in the teaching-learning process of object-oriented programming This review took as a reference the guidelines of the protocol proposed by Kitchenham et al. (2007). The PICOC strategy (Kitchenham & Charters, 2007) used in this research is presented below.

2.1.1 PICOC

According to Kitchenham and Charters (2007) the use of 5 criteria is suggested to define the research questions that will guide the search for the studies which will be part of the research: population, intervention, comparison, results, and context. These criteria are generally used in medicine and can be applied in the systems area. Population refers to the people affected by the intervention. The interventions which are usually a comparison between two or more alternative treatments. The outcomes are the clinical and economic factors that will be used to compare the interventions. The comparison refers to what the intervention is being compared with. The context refers to what is the context in which the intervention is delivered. The definition of each concept in the framework of this research is presented below:

  • Population: Corresponds to the literature related to topics that address the problems and solutions in the teaching-learning processes of object-oriented programming.

  • Intervention: The search string displayed in each one of the repositories made it possible to delimit the work to be done and established the field of intervention of the research.

  • Comparison: This concept was used in the present investigation when comparing the problems found.

  • Results: Identification of problems and solutions in the teaching-learning process of object-oriented programming.

  • Context: It is made up of the works that have as their foundation the study of object-oriented programming.

2.1.2 SLR Research Questions

The research questions proposed for carrying out the systematic literature review, which are supported by the PICOC criteria, are presented below.

  • Q1: What are the problems related to the learning and teaching of object-oriented programming?

  • Q2: What are the solutions to the problems found in the teaching and learning of object-oriented programming?

2.1.3 Search process

Once the research questions were defined and the keywords were identified, the generic search string was established to obtain the primary sources of the study. Fig. 1 presents the defined query string. This string is intended to identify tertiary papers that focus their studies towards teaching, learning or object-oriented paradigm skills. The "*" is used as a catch-all symbol to replace any combination of the words learn and teach, for example, it would apply learning and teaching.

Fig. 1
figure 1

Search string

The work carried out by Brereton et al. (2007) and Kitchenham and Charters (2007) was established as a reference for the selection of the search repositories. The selected repositories were IEEE Xplore, Scopus, ACM Digital Library and Science Direct.

3009 non-duplicate studies were found with the execution of the search string. For the Science Direct repository, an automatic filtering of the identified papers was performed with the VOSviewer tool (Van Eck & Waltman, 2010). The data obtained with the processing tool allowed to generate a term co-occurrence map that defines the most important topics for the present study in the Science Direct repository. The topics classified by the VOSviewer tool are shown in Fig. 2.

Fig. 2
figure 2

Science Direct terms co-occurrence network map

Due to the limited number of papers, automatic processing was not performed with the VOSviewer tool in the IEEE, Scopus and ACM repositories. The automatic processing performed with VOSviewer significantly reduced the number of pre-selected studies, identifying 945 relevant investigations for the present study.

2.1.4 Selection and exclusion criteria

The following selection criteria were applied to the title and abstract metadata of the 945 articles preselected in the previous stage.

  • SC1: Studies that address problems in the teaching-learning of object-oriented programming.

  • SC2: Studies that reference bibliography where the problems of object-oriented programming are identified.

After applying the selection criteria 87 papers remained. Then, exclusion criteria were applied to these 87 papers. As a result of this process 56 studies remained which formed the conceptual basis of the present investigation. The applied exclusion criteria are shown below:

  • EC1: Incomplete studies that do not present the details of the research.

  • EC2: Articles that do not allow access to their information.

The complete process from definition of the search string, selection of repositories and selection and exclusion criteria application, is presented in Fig. 3 and Table 1.

Fig. 3
figure 3

Search and selection process

Table 1 Results of the selection process

2.2 Identified problems

A comparison matrix was made after analyzing the 56 selected studies. It allowed the identification of 14 problems related to the teaching and learning process of object-oriented programming. Each of these problems is described below.

  • Difficulty in understanding object and its dynamic nature (D01). This problem is referred as the students’ conception of the term object as a simple record of a database. The students do not understand the aspect of behavior and variation as a function of the object’s state (Hadar, 2013; Jordine et al., 2015; Karahasanović et al., 2007; Moons & De Backer, 2009; Moussa et al., 2016; Olsson & Mozelius, 2015; Rajashekharaiah et al., 2016; Sajaniemi et al., 2007; Sanders et al., 2008; Sheetz, 2002; Sheetz et al., 1997; Sien & Chong, 2011; Tegarden & Sheetz, 2001; Thomasson et al., 2006; Xinogalos, 2015; Yang et al., 2018).

  • Difficulties related to understanding classes (D02). This difficulty is described as the complexity presented by the students when assimilating the static nature and depth of classes. It is challenging for them to understand the hierarchy and the identification of correct classes. The students even refer to the difficulty in distinguishing between class and object. They generally assimilate class as a collection of objects, rather than an abstraction (Benander et al., 2004; Biddle & Tempero, 1998; Gorschek et al., 2010; Hadar, 2013; Hubwieser & Mühling, 2011; Karahasanović et al., 2007; Lewis et al., 2004; Moons & De Backer, 2009; Moussa et al., 2016; Musil & Richta, 2017; Nelson et al., 1997; Rajashekharaiah et al., 2016; Sajaniemi et al., 2007; Sanders et al., 2008; Sheetz, 2002; Sheetz et al., 1997, Sien, 2011, Sien & Chong, 2011, Tegarden & Sheetz, 2001, Thomasson et al., 2006; Xinogalos, 2015; J. Yang et al., 2018).

  • Difficulty in understanding the concept of method (D03). In this case it is referred as the complexity presented when assimilating the concept of method, there is no clarity on how to make the method calls. The students do not know how to determine the number of methods needed or what labels or names to assign to them. They do not understand how to reuse methods or their proper placement (Berges et al., 2012; Gorschek et al., 2010; Hubwieser & Mühling, 2011; Karahasanović et al., 2007; Moons & De Backer, 2009; Moussa et al., 2016; Olsson & Mozelius, 2015; Sajaniemi et al., 2007; Sanders et al., 2008; Sheetz et al., 1997; Tegarden & Sheetz, 2001).

  • Difficulty in understanding, teaching and implementing object-orientation (D04). This problem is specified as the challenge of performing object-oriented analysis, design, and programming. The students present difficulties when adopting the object-oriented paradigm, because their initial formative process is generally based on purely structural programming. The modular nature of the object-oriented paradigm is conceived as a challenge for educators, since in this process it is common for students to assimilate erroneous conceptions and to present problems in understanding and implementing object-oriented standards (Abbasi et al., 2017; Anniroot & de Villiers, 2012; Arif, 2000; Barr et al., 1999; Benander et al., 2004; Black et al., 2013; Cetin, 2013; Dale, 2006; Fedorowicz & Villeneuve, 1999; García Perez-Schofield et al., 2008; Hadar, 2013; Hosanee & Panchoo, 2015; Hubwieser & Mühling, 2011; Hundley, 2008; Jordine et al., 2015; Tahat, 2014; Karahasanović et al., 2007; Kunkle & Allen, 2016; Lewis et al., 2004; Mazaitis, 1993; Moussa et al., 2016; Nelson et al., 1997; Pei et al., 2010; Rajashekharaiah et al., 2016; Sajaniemi et al., 2007; Sanders et al., 2008; Seng & Yatim, 2014; Sheetz, 2002; Sheetz et al., 1997; Sien, 2011; Sien & Chong, 2011; Streib & Soma, 2010; Tan et al., 2014; Tegarden & Sheetz, 2001; Thomasson et al., 2006; Turner et al., 2010; Xinogalos, 2015; J. Yang et al., 2018; Zhang et al., 2018).

  • Difficulty in understanding object-oriented relationships (D05). It refers to the difficulty that the students have when understanding and implementing object-oriented relationships, such as association, dependency, generalization / specialization-inheritance, composition and aggregation. These problems are common due to the learners’ lack of experience in relation to the object-oriented programming paradigm. The students generally present difficulties in the process of modeling these relationships, and consequently in the implementation and application of concepts that are often conceived as complex (Barr et al., 1999; Benander et al., 2004; Berges et al., 2012; Biddle & Tempero, 1998; Dale, 2006; Gorschek et al., 2010; Hadar, 2013; Hosanee & Panchoo, 2015; Hundley, 2008; Karahasanović et al., 2007; Lewis et al., 2004; Moussa et al., 2016; Musil & Richta, 2017; Nelson et al., 1997; Olsson & Mozelius, 2015; Rajashekharaiah et al., 2016; Sheetz, 2002; Sheetz et al., 1997; Sien, 2011; Sien & Chong, 2011; Tegarden & Sheetz, 2001; Thomasson et al., 2006; J. Yang et al., 2018; Zhang et al., 2013).

  • Difficulty in understanding polymorphism and overload (D06). In this case it is indicated the high level of complexity the concepts of polymorphism and overload have at the moment of initiating a student into the programming area (Benander et al., 2004; Dale, 2006; Hosanee & Panchoo, 2015; Hundley, 2008; Lewis et al., 2004; Moussa et al., 2016; Rajashekharaiah et al., 2016; Sheetz, 2002; Sheetz et al., 1997; Tegarden & Sheetz, 2001; J. Yang et al., 2018).

  • Difficulty in understanding encapsulation (D07). This problem is related to the assimilation of several misconceptions related to understanding encapsulation, modularity and information hiding (Biddle & Tempero, 1998; Gorschek et al., 2010; Hubwieser & Mühling, 2011; Hundley, 2008; Karahasanović et al., 2007; Lewis et al., 2004; Moussa et al., 2016; Rajashekharaiah et al., 2016; Sanders et al., 2008; Sheetz, 2002; Sheetz et al., 1997; Sien & Chong, 2011; Tegarden & Sheetz, 2001; Turner et al., 2010; Xinogalos, 2015; J. Yang et al., 2018).

  • Complexity with the programming languages and tools used in the teaching and learning of object-orientation (D08). This problem is specified as the difficulty that students present with the use of debugging, navigation, testing and documentation tools. The change in technologies, paradigms and languages makes the learning process even more difficult (Barr et al., 1999; Benander et al., 2004; Bishop-Clark, 1995; García Perez-Schofield et al., 2008; Jiang et al., 2004; Jordine et al., 2015; Karahasanović et al., 2007, Kiss, 2013, Mazaitis, 1993, Moons & De Backer, 2009, Moons & De Backer, 2013; Nelson et al., 1997; Radenski, 2006; Rajashekharaiah et al., 2016; Sheetz, 2002; Sheetz et al., 1997; Tegarden & Sheetz, 2001; Thomasson et al., 2006; J. Yang et al., 2018; T.-C. Yang et al., 2015; Zainal et al., 2012; X. Zhang et al., 2018).

  • Difficulty in teaching and understanding general programming topics (D09). This difficulty refers to the challenges that the students face when understanding algorithms and basic programming concepts. Concepts such as variables, parameters, functions, and control structures are often considered difficult topics (Benander et al., 2004; Berges et al., 2012; Biddle & Tempero, 1998; Cetin, 2013; Dale, 2006; Govender, 2009; Hadar, 2013; Hubwieser & Mühling, 2011; Hundley, 2008; Jiang et al., 2004; Jordine et al., 2015; Karahasanović et al., 2007; Kiss, 2013; Krpan et al., 2015; Kunkle & Allen, 2016; Mazaitis, 1993; Moons & De Backer, 2009; Moons & De Backer, 2013; Moussa et al., 2016; Nelson et al., 1997; Olsson & Mozelius, 2015; Radenski, 2006; Sanders et al., 2008; Sheetz, 2002; Sheetz et al., 1997; Sien, 2011; Tan et al., 2014; Tegarden & Sheetz, 2001; Thomasson et al., 2006; T.-C. Yang et al., 2015; Zainal et al., 2012; J. Zhang et al., 2013).

  • Difficulty in developing abstract thinking (D10). This problem is related to the difficulty when understanding and solving real-world problems. The students frequently face processes where they must coordinate the acquired abstract thinking skills and the assimilated knowledge. This integration of skills and concepts challenges the student and, in many cases, makes the training process difficult (Anniroot & de Villiers, 2012; Biddle & Tempero, 1998; Black et al., 2013; Hadar, 2013; Hundley, 2008; Jordine et al., 2015; Karahasanović et al., 2007; Krpan et al., 2015; Olsson & Mozelius, 2015; Rajashekharaiah et al., 2016; Sheetz, 2002; Sheetz et al., 1997; Sien, 2011; Sien & Chong, 2011; Tegarden & Sheetz, 2001; Thomasson et al., 2006).

  • Difficulty in understanding software analysis and design (D11). It refers to the inability the students have to represent and design real-world problems. Students find challenges when using analysis and design techniques. They find it difficult to apply design concepts in Unified Modeling Language (UML) and to make use of related techniques and patterns (Anniroot & de Villiers, 2012; Biddle & Tempero, 1998; Bishop-Clark, 1995; Black et al., 2013; Hadar, 2013; Hundley, 2008; Tahat, 2014; Karahasanović et al., 2007; Lewis et al., 2004; Moons & De Backer, 2009; Rajashekharaiah et al., 2016; Sanders et al., 2008; Sheetz, 2002; Sheetz et al., 1997; Sien, 2011; Sien & Chong, 2011; Tegarden & Sheetz, 2001; Thomasson et al., 2006; Turner et al., 2010; J. Yang et al., 2018).

  • Difficulty in understanding reuse (D12). This is a quite recurrent problem. The learners do not understand when and where to reuse and they confuse this concept with the tendency to copy code, generating redundancy and duplication of information (Karahasanović et al., 2007; Sheetz, 2002; Sheetz et al., 1997; Tegarden & Sheetz, 2001).

  • Difficulty with project administration and management methodologies and techniques (D13). This problem refers to understanding activities that include time and resource restrictions. It is confusing for the learners to know when to stop, advance or finish the project (Karahasanović et al., 2007; Sheetz, 2002; Sheetz et al., 1997; Tegarden & Sheetz, 2001).

  • Difficulty in software implementation and maintenance (D14). This last problem is related to the difficulty students have in starting the software and in adding, subtracting or modifying the code to be adapted. These challenges demand significant amounts of time and effort, which generally causes apathy and disinterest in the process (Karahasanović et al., 2007; Tegarden & Sheetz, 2001).

2.3 Identified solutions

According to the literature review, six possible solutions to the problems of teaching-learning of object-oriented programming were found. Each of the possible solutions is described below.

  • Use of tools that support knowledge transfer (S01). This solution is described as an emerging proposal where virtualization, animation, online sessions and more channels that support knowledge transfer are used. Additionally, it is emphasized on the use of game-related tools and more suitable languages for teaching (Abbasi et al., 2017; Govender, 2009; Jordine et al., 2015; Kiss, 2013; Mazaitis, 1993; Moons & De Backer, 2009; Moons & De Backer, 2013; Olsson & Mozelius, 2015; Radenski, 2006; Sajaniemi et al., 2007; Seng & Yatim, 2014; Sheetz et al., 1997; Tan et al., 2014; J. Yang et al., 2018; T.-C. Yang et al., 2015).

  • Emphasize basic programming concepts and introduce the object-oriented paradigm at an early point in the curriculum (S02). It is considered that introducing the object-oriented paradigm at an early point in the curriculum make the students better understand the associated concepts. In addition, the basic concepts, such as class and object, must be emphasized, because they tend to be confused (Biddle & Tempero, 1998; Hundley, 2008; Mazaitis, 1993; Sanders et al., 2008; Tegarden & Sheetz, 2001).

  • Make use of UML diagrams, design patterns and simplified methodologies (S03). The use of the unified modeling language helps the students visualize and formulate programming concepts (Hundley, 2008; Jiang et al., 2004; Moons & De Backer, 2013; Sheetz et al., 1997; J. Yang et al., 2018).

  • Minimize aspects of the problem mastery, while learning object-oriented fundamentals (S04). This solution refers to emphasizing the resolution and mastery of the problem, putting aside the complexity of programming languages or development environments (Tegarden & Sheetz, 2001).

  • Use of active learning techniques and intrinsic rewards (S05). This solution is referred as the use of active learning techniques that involves peer tutoring, role-play activities, workshops, exemplifications, use of metaphors, and concept mapping (Jordine et al., 2015; Mazaitis, 1993; Moons & De Backer, 2013; Nelson et al., 1997; Sajaniemi et al., 2007; Sanders et al., 2008; Sien, 2011; Thomasson et al., 2006; T.-C. Yang et al., 2015; Zainal et al., 2012).

  • Change the way of teaching (S06). This solution refers to the change of teaching strategies, adapting the approach to the difficulties, achievements and mistakes of others. Thus, the learning is based on the students’ experiences (Govender, 2009; Moons & De Backer, 2013; Tan et al., 2014; Thomasson et al., 2006; T.-C. Yang et al., 2015).

2.4 Prioritization of the identified problems

The DEMATEL (Decision Making Trial and Evaluation Laboratory) multi-criteria method is used for the prioritization and classification of the most relevant OOP problems (Espinosa & Salinas, 2013; Jeong & Ramírez-Gómez, 2018; López-Ospina et al., 2017). This method allows finding the relationships between the problems of this study, as well as their hierarchization depending on the decision-making context. In other words, it is assumed that there is a relationship between the problems. DEMATEL is a method that is considered effective for identifying the key components of the cause-effect chain of a complex system. It seeks to evaluate the interdependent relationships between factors and find the most critical or relevant ones through a visual structural model. This method provided the causal relationship between OOP problems and their importance ranking (Alzahrani et al., 2018; Aldowah et al., 2020). The steps of the DEMATEL method that were carried out in the present study are detailed below.

2.4.1 Step 1: Generation of the direct relationship matrix

The evaluation of the direct relationships of the problems was carried out by three experts in the field of object-oriented programming. The selected profiles were those who met: 1) experience of more than 5 years in the academic environment, 2) experience of more than 5 years in application development in the business sector and 3) professionals from different universities. Table 2 describes the experts’ profiles.

Table 2 Profile of the experts

The scale defined in Table 3 was used for the evaluation of the problems in order to find the influence relationship of the 14 problems identified in the teaching and learning of OOP. This scale is the one generally used in the applications of the DEMATEL method.

Table 3 Comparative scale

The 14 x 14 direct relationships matrix A was generated based on the information recorded by the experts (the problems have been described in section 2.2 Identified problems). Each expert evaluated the influence of each problem against the other ones to define the scale of influence among them. From this process, 3 evaluation matrices emerged, which later were averaged to generate the consolidated initial relationships matrix. Table 4 presents matrix A with the averages obtained.

Table 4 Initial direct relationships matrix

2.4.2 Step 2: Normalization of the direct relationships matrix

The normalized matrix M was generated using equations (1) and (2). The objective of the transformation is to have a matrix with a norm less than 1. The results of M are presented in Table 5.

$$k=\min \left(\left(\frac{1}{\underset{1\le i\le n}{\max}\sum_{j=1}^n\left|{a}_{ij}\right|}\right),\left(\frac{1}{\underset{1\le j\le n}{\max}\sum_{i=1}^n\left|{a}_{ij}\right|}\right)\right)\kern1.5em i,j\in \left\{1,2,3,\dots, n\right\}$$
(1)
$$M=k\ast A$$
(2)
Table 5 Normalized direct relationships matrix

2.4.3 Step 3: Obtaining the total relationship matrix

Subsequently, the total relationship matrix S was generated using equation (3). Table 6 presents the data of matrix S. It contains the direct and indirect relationships between the problems.

$$S=M\ {\left(I-M\right)}^{-1}$$
(3)
Table 6 Total relationships matrix

2.4.4 Step 4: Determine the cause group and effect group

Based on equations (4), (5) and (6) a vector with the sum of the elements per rows of the matrix S, named D, was generated; then a vector with the sum of the elements per columns of S, named R, was generated.

$$S={\left|{S}_{ij}\right|}_{nxn}\kern1.5em i,j\in \left\{1,2,\dots, n\right\}$$
(4)
$$D=\sum_{j=1}^n{S}_{ij}$$
(5)
$$R=\sum_{i=1}^n{S}_{ij}$$
(6)

Table 7 presents the calculation values of D+R and D-R. The positive values of D-R represent causes and the negative values are interpreted as the problems that are effect. A problem that is a Cause is one that originates or initiates the problem, whereas if a problem is an Effect, it means that it is the consequence of another problem. These results can be seen in Table 8.

Table 7 Comparative D+R / D-R
Table 8 Problems classified per group

2.4.5 Step 5: Set the threshold value and obtain the impact diagram

The threshold value was set at 0.2863 for matrix S based on equation (7).

$$threshold=\frac{\sum_{i=1}^n\sum_{j=1}^n{S}_{ij}}{n^2}$$
(7)

The diagram in Fig. 4 shows the distribution of the matrix S values. The minimum value is 0.063, 1st quartile is 0.2154, 2nd quartile is 0.3027, 3rd quartile is 0.3586 and the maximum value is 0.5049. As it can be seen in Fig. 4, there are no outliers of the S values. Additionally, the threshold value is less than the median and corresponds to the 41st percentile. It means that 41% of the scores are less than or equal to the threshold. This implies that 80 relationships among problems should be analyzed as key in the teaching-learning process. Given this number of relationships, it is proposed to do the aggregate causality analysis of Fig. 5.

Fig. 4
figure 4

Box plot of matrix S

Fig. 5
figure 5

D+R vs D-R relationship

Fig. 5 describes the causal diagram is built with the horizontal axis (D + R) called "Prominence" and the vertical axis (D - R) called “Relation”. The horizontal axis shows the relative importance of each problem. On the other hand, vertical axis, splits problems into cause or effect. If (D - R) is positive, is a cause problem. Otherwise, it is an effect problem. For that reason, causal diagrams can visualize the causal relationships of problems into a visible structural model. According to the results obtained, D02’s problem is the cause factor with the highest importance. On the other hand, D10’s problem is the strongest effect factor and has a high weight. The problems classified as cause (D01, D02, D03, D06, D09, D12) have high weighting. However, some effect problems have a low importance.

2.4.6 Step 6: Weighting of problems

In this step, the problems that have the greatest weight in the teaching and learning process of OOP were identified. Equations (8) and (9) were used to weight the problems (Jeong & Ramírez-Gómez, 2018). The result of applying the equations is presented in Table 9 and Table 10.

$${W}_i=\sqrt{{\left({D}_i+{R}_i\right)}^2+{\left({D}_i-{R}_i\right)}^2}$$
(8)
Table 9 Weighting coefficient
Table 10 Standardized coefficent
$${W}_i=\frac{W_i}{\sum_{i=1}^n{W}_i}$$
(9)

After applying the weighting and standardization coefficients, the problems with the greatest weight in the teaching and learning process of OOP were identified (see Table 11).

Table 11 Ranking of problems

2.5 Selection of solutions strategies

It is important to identify the possible solutions for the problems found in the process of teaching and learning of OOP. There is evidence in the analyzed literature where authors such as Gómez et al. (2020); Zhang et al. (2019) and Yi and Fang (2018) presented significant results when selecting solution strategies through multi-criteria methods such as TOPSIS (Technique for Order Preference by Similarity to Ideal Solution). The TOPSIS method handles the concept of the ideal solution and the anti-ideal solution when choosing decision alternatives. Its premise is based on the fact that a given alternative is located at the shortest distance from a positive ideal solution and at the greatest distance from a negative ideal solution. An ideal solution is defined as an ideal set of levels with respect to all the considered attributes of a given problem, even when the ideal solution is usually impossible or not feasible to obtain (Sun et al., 2016). The steps used in the implementation of the TOPSIS method during the selection process of solution strategies analyzed in this study are listed below.

2.5.1 Step 1: Construction of the decision matrix

The same experts who supported the application process of the DEMATEL method were consulted for the evaluation of the matrix of solutions vs problems with the TOPSIS method. Each expert evaluated it based on the following guidelines: 1) identify how much influence a solution could have on each problem, 2) identify how much it could contribute to solving the problem and 3) how feasible it was to implement that solution. Each expert evaluated the influence of the solutions in each of the 14 problems, with values from 0 to 4, where 0 represents that there is no influence and 4 that there is a total influence of the solution to address the problem. The scale used is found in Table 3. From this process 3 matrices emerge, one for each evaluator. These matrices are averaged and the decision matrix presented in Table 12 is obtained.

Table 12 Decision matrix

2.5.2 Step 2: Normalization of the decision matrix

Subsequently, the decision matrix was normalized based on Equation (10). Table 13 presents the results of the normalized matrix.

$${v}_{ij}=\frac{r_{ij}}{\sqrt{\sum_{i=1}^m{\left({r}_{ij}\right)}^2}},\forall j=1,2,\dots, n$$
(10)
Table 13 Normalized decision matrix

2.5.3 Step 3: Construction of the weighted normalized decision matrix

The weighting vector was obtained with the DEMATEL method. The weighted normalized decision matrix was calculated by multiplying each Wj by each Vij. Where W is the weight vector for each problem (Table 14), and V is the normalized decision matrix (Table 13). The results of this calculation are presented in Table 15.

Table 14 Weight vector
Table 15 Weighted normalized decision matrix

2.5.4 Step 4: Determination of the ideal positive and negative solution

The objective of this step was to identify the positive and negative ideal solution, in order to calculate how close the OOP solutions were to the ideal ones. Formulas (11) and (12) were used for this process.

$$\overline{A^{+}}=\left\{\overline{A_1^{+}},\overline{A_2^{+}},\dots, \overline{A_n^{+}}\right\}=\left\{\left(\underset{i}{\max}\overline{v_{ij}},j\in J\right)\left(\underset{i}{\min}\overline{v_{ij}},j\in J^{\prime}\right)\right\};i=1,2,\dots, m$$
(11)
$$\overline{A^{-}}=\left\{\overline{A_1^{-}},\overline{A_2^{-}},\dots, \overline{A_n^{-}}\right\}=\left\{\left(\underset{i}{\min}\overline{v_{ij}},j\in J\right)\left(\underset{i}{\max}\overline{v_{ij}},j\in J^{\prime}\right)\right\};i=1,2,\dots, m$$
(12)

The results of Table 16 were obtained after applying formulas (11) and (12). For the case study of this article, the objective was to maximize the values of OOP solutions.

Table 16 Positive and negative ideal per solution

2.5.5 Step 5: Calculation of distance measurements

In this step the positive and negative distance measures were calculated for each solution applying formulas (13) and (14).

$$\overline{d_i^{+}}=\sqrt{\sum_j{\left(\overline{v_{ij}}-\overline{A_j^{+}}\right)}^2}$$
(13)
$$\overline{d_i^{-}}=\sqrt{\sum_j{\left(\overline{v_{ij}}-\overline{A_j^{-}}\right)}^2}$$
(14)

The results of this arithmetic procedure are presented in Table 17.

Table 17 Positive and negative ideal of solutions

2.5.6 Step 6: Calculation of relative proximity

The last step in the TOPSIS method was the calculation of relative proximity, a procedure based on equation (15).

$$\overline{RS_i}=\frac{d_i^{-}}{d_i^{+}+{d}_i^{-}};i=1,2,\dots, m$$
(15)

Table 18 presents the results of the application of the relative proximity equation. Subsequently, the values were organized from the highest to the lowest weight, in order to identify the solutions that were closest to the solution ideal as described in Table 20.

Table 18 Relative proximity

3 Results

3.1 Influence relationship between the OOP problems

According to the DEMATEL results, Table 19 describes how much one problem affects another and how much it is affected by another. For the case of problem "D02 - Difficulties related to the understanding classes", it influences to a high degree problem "D04 - Difficulty in understanding, teaching and implementing object-orientation". This would be an expected result because, if a student does not handle the concept of classes correctly, it will be reflected when understanding the object-oriented paradigm.

Table 19 Influence relationship between problems

Ten problems affect problem "D04 - Difficulty in understanding, teaching and implementing object orientation", indicating that this problem is the one that receives the most influence from the other factors. The problem that most affects the other problems is “D02 - Difficulties related to understanding classes”, with an occurrence of 11 out of 14.

3.2 Towards a generic framework

The construction of the Ranking allowed to define a framework for implementing solutions to problems in the object-oriented programming teaching. As a general contribution of this research, the steps to implement strategies that help in the object-oriented programming teaching-learning process are presented. Fig. 6 describes the stages and activities to be carried out for this purpose.

Fig. 6
figure 6

Generic framework

The validation stage is part of the next phase of this research in which instruments to evaluate the perception of students and teachers after applying the suggested strategies will be built. From this activity a feedback process will emerge for the proper calibration of such instruments and strategies.

3.3 Strategies to implement the best solutions

As it can be seen in Table 20, the top ranked solutions is “S05 - Use of active learning techniques and intrinsic rewards”, followed by “S02 - Emphasize basic programming concepts and introduce the object-oriented paradigm at an early point in the curriculum”, and in the third position “S01 - Use of tools that support knowledge transfer”.

Table 20 Solutions ranking

The solutions that are closest to the ideal are the best strategies to help minimize the 14 problems in this study (Table 20). Recommendations for the implementation of the solutions ranked in the top 3 positions are provided below.

3.3.1 Strategies for the use of active learning techniques and intrinsic rewards (S05)

For the implementation of the solution "Use of active learning techniques and intrinsic rewards", three strategies are proposed as it can be seen in Table 21.

Table 21 Strategies for S05

3.3.2 Strategies to emphasize basic programming concepts and introduce the object-oriented paradigm at an early in the curriculum (S02).

For the implementation of the solution "Emphasize basic programming concepts and introduce the object-oriented paradigm at an early point in the curriculum", four strategies are proposed as it can be seen in Table 22.

Table 22 Strategies for S02

3.3.3 Strategies for the use of tools that support knowledge transfer (S01).

For the implementation of the solution "Use of tools that support knowledge transfer", three strategies are proposed as it can be seen in Table 23.

Table 23 Strategies for S01

4 Discussion

The problems and solutions identified in the literature review phase present some suggestions by the panel of experts. For expert 1 problems D11, D13 and D14 are not part of the scope of OOP teaching and learning. Based on this statement, he recommends that these problems should not be taken into account in future research. He also mentions that there are relevant problems that were not explicitly identified in the findings, such as the programming language syntax requirement. By having a diversity of programming languages, each one will have its own statements and typing rules, making the teaching-learning process of OOP difficult. Another factor that influences the teaching of OOP is the pedagogical preparation of teachers. Instructors are usually experts in informatics or computer science; however, teaching methodology is not an area of their expertise.

On the other hand, expert 2 affirms that, although problems D13 and D14 are not directly related to the teaching and learning of OOP, it is important to evaluate them within the framework of a complete process of analysis of this problem. For expert 2, the problems identified group together the OOP universe.

Regarding the level of complexity of each problem, expert 3 states that the problems identified in the literature review are at different levels, it means that there are generic problems and other more specific ones. In this regard, he recommends working with problems D01 to D10.

Regarding the solutions found, Expert 1 considers that appropriate preparation in methodological and pedagogical issues is important in the teaching staff that guides programming topics.

Experts 1 and 2 suggest that ideally solution "S06 - Change the way of teaching" would be the optimal solution for the OOP teaching and learning problems. However, in the practice it is not feasible to implement it, because it implies the construction of individual and personalized teaching activities.

Expert 3 considers that solutions S01 and S05 have a great similarity in their concept, for this reason, they can be considered as the same solution when implementing them.

When analyzing the results of Table 11, it is possible to see that the problem with the greatest weight is D04 “Difficulty in understanding, teaching and implementing object orientation”. According to the decision matrix of the TOPSIS method this problem may be solved by implementing S02 solution. This solution is very important, because the basis of OOP lies in understanding the concept of class and object; and as this research has proved these concepts are often confused.

The second most important problem was D02 “Difficulties related to understanding classes”. This problem, according to the matrix in Table 12, can be addressed from 3 solutions: S02, S03 and S05 where only S03 did not appear in the ranking of solutions provided by the TOPSIS. However, it must be taken into account for this specific problem.

In general, the solutions of the ranking have in common that the change in the teaching and learning methodologies of OOP is prevailing. It is not advisable to maintain the same strategies for lectures and to present merely theoretical concepts. It is important to have students involved directly in the process and not continue thinking that they are actors who only receive information. As Ismail et al. (2018) well stated it, “This gamification approach to education is considered as one of the new teaching era that it is capable of improving students' achievement”.

5 Conclusions

This article presents an analysis of the OOP problem in 3 phases. The first phase of the study sought to identify the problems and solutions of OOP. This process of problem recognition was carried out through a systematic literature review in high-impact repositories. The second phase was the hierarchization of the OOP problems by means of the DEMATEL method; with this method, it was possible to identify the most relevant problems in the teaching-learning process of OOP and the relationship level between these problems. The third phase was the making up of the solutions ranking that was developed through the TOPSIS method, as well as the proposal of implementing strategies for each of the solutions located in the first three positions of the ranking. The contribution of this research can be focused on 3 aspects: 1) List of problems categorized from the greatest to the least relevance. 2) Ranking of solutions and 3) Strategies to implement the best solutions. The conclusions of this work according to the phases of the investigation are listed below.

It was possible to obtain information about the problems, causes and solutions of the teaching-learning process of object-oriented programming from the systematic literature review process carried out. These results show the interest of the academic community in presenting alternatives to implement strategies to improve this process.

According to the results obtained when applying the multicriteria techniques, the problem “D02 - Difficulties related to understanding classes” was identified as a cause in the DEMATEL method and had a high weighting value. This indicates the importance of emphasizing this subject in the classes, in order to generate adequate conceptual bases for programming students.

Based on the TOPSIS method results, it is found that the top ranked solution is "Strategies for the use of active learning techniques and intrinsic rewards". This finding reinforces the need for a change in OOP teaching strategies. For such reason, the use of tools related to computer games and the search for new teaching strategies that motivate students in their formative process can support the learning of object-oriented programming.

It was evidenced that there is coherence between the literary guarantee that supports the problems and solutions in the teaching of OOP presented in this study and the approaches that experts in the development area highlight as relevant when identifying weaknesses in the process.

The use of multi-criteria decision methods made it possible to identify the relationships between the OOP problems, as well as to prioritize the problems and solutions.

Taking into account the current world situation with the Covid-19 pandemic, the application of different teaching-learning strategies in all areas of study is imperative. In the case of OOP, strategies aimed at the use of tools that support knowledge transfer (S01) and the use of active learning techniques and intrinsic rewards (S05) are particularly important. It is because work mediated by technology and strengthening of individual skills is a priority with the current situation, where remote work and virtuality will be the new study scenarios.

6 Future research direction

This study laid the conceptual foundations in the identification of problems and solutions based on literature review. For this reason, it is necessary to carry out an analysis with a representative sample group, where OOP teachers and students of this subject help to identify which, from their experience, are the problems and solutions for the teaching of OOP by means of an evaluation instrument.

At the university where the authors belong, teacher evaluation processes are carried out twice each year, specifically, once for each academic semester. These results can feed the problems database that arise in the teaching of OOP.

The next phase of this research consists of implementing strategies to respond to the solution “Strategies for the use of active learning techniques and intrinsic rewards (S05)”. At this stage, a video game will be developed at the University of origin to teach concepts such as method, polymorphism, and encapsulation.