1 Introduction

Learning to program is considered a difficult task for a substantial number of novice programmers (Reardon and Tangney 2014; Malik and Coldwell-Neilson 2018). Novices have to focus on a set of skills (problem solving, syntax and semantics) at the same time (Malik 2019). Further, introductory programming (IP) courses require students to learn the theoretical concepts of the programming domain and then practice these concepts in designing and coding the given problem statement. Consequently, this process challenges the cognitive processes of many novice programmers, pushing them into information overload (Shuhidan 2012).

Problem solving skills are an integral component in learning to program. However, some studies suggest that novice programmers spend more time in acquiring programming knowledge (syntax and semantics) rather than learning problem solving strategies (De Raadt 2008; Webster 1994; Kölling and Rosenberg 1996; Ala-Mutka 2004; Iqbal and Harsh 2013). Some textbooks used in IP courses cover problem solving strategies only in the early chapters (De Raadt 2005). Robins et al. (2003) pointed out that ‘typical introductory programming textbooks devote most of their content to presenting knowledge about a particular language’ (p. 141). Ala-Mutka (2004) described that learning to program comprises of several activities such as learning the programming language features, program design and comprehension. The traditional approach used in teaching IP courses starts with programming knowledge (syntax and semantics) of a particular language, paying less attention to problem solving strategies.

In this study, we developed and introduced the PROBSOL application to enhance novice programmers’ problem solving skills. The application facilitated the learning process of students in two different modes of learning, web-based called E-PROBSOL, and a mobile app called M-PROBSOL. Both applications are based on pseudo-code techniques. The applications covered all the teaching topics of the course and were offered for the whole semester. Moreover, they provided opportunities for students to practice problem solving strategies in the course without having to worry about the syntax of the programming language.

This paper is organized as follows. The literature review is presented first, followed by a brief introduction to the overall design of PROBSOL applications. The methodology adopted for this study is then described, followed by a presentation of the research results and discussion. The paper concludes with the outcomes of the study, recommendations for practitioners and areas for further work.

2 Literature review

Problem solving skills are considered as an important and fundamental component in the programming domain (Malik et al. 2019). De Raadt (2008) provided a definition of problem solving as ‘A mechanism for achieving a solution to a programming problem’ (p. ix) which is also applicable in this context. Novice programmers should focus on problem solving strategies in an IP course. In contrast, researchers concluded that novice programmers focus more on coding instead of paying attention to problem solving skills as well. (Yoo et al. 2012; Iqbal and Harsh 2013). This finding is also reinforced in the IP textbooks. De Raadt et al. (2005) reviewed forty textbooks used in an introductory programming course. He concluded that six books out of forty integrated problem solving strategies throughout all topics. Most of the analyzed books focused more on the syntax and semantics of the programming languages. In some cases, problem solving skills were covered only in early chapters of the book. Yet as early as 1996, Winslow discussed that, it is important for novices to focus on programming language syntax, semantics and problem solving skills concurrently. The ACM-IEEE Joint Task Force on Computing Curricula (2013) emphasizes that novice programmers should equally focus on problem solving strategies and programming knowledge (syntax and semantics). Similarly the Australian Computer Society (2013) recommends a focus on problem solving strategies and programming knowledge in programming courses.

Research studies suggested different problem solving strategies for novice programmers. De Raadt (2008) introduced explicit instruction on programming strategies based on Goals and Plans as proposed by Soloway (1986). In this strategy, the instructor determines the goals that need to be achieved within a given problem and then these goals are mapped to plans. Winslow (1996) divided program problem solving into four steps:

  1. 1)

    Understand the problem

  2. 2)

    Determine how to solve the problem:

    1. a)

      in some form, and

    2. b)

      in computer compatible form

    (Note that generally, students have trouble going from step 2a to step 2b.)

  3. 3)

    Translate the solution into a computer language program, and

  4. 4)

    Test and debug the program’ (p. 19)

Malik and Coldwell-Neilson (2016) proposed an ADRI (Approach, Deployment, Result, Improvement) approach to promote problem solving skills in the IP course. The first stage (Approach) uses two different problem solving strategies (pseudo code and flowchart) to solve the given problem statement. Moreover, an ADRI editor was prepared to promote the problem solving strategies in the course. Novices are encouraged to practice problem solving strategies throughout the course. Consequently, achievement of student learning outcomes was shown to improve with the ADRI approach compared to outcomes prior to its introduction. Moreover, IP course instructors also found that the ADRI approach enhances the problem solving skills of novice programmers (Malik and Coldwell-Neilson 2017a). Papadakis et al. (2016) introduced two block-based programming environments (scratch and App Inventor) in the teaching and learning process of introductory programming in secondary education. They concluded that both environments were attractive platforms for introducing fundamental concepts in computer programming. Kanaki and Kalogiannakis (2018) introduced digital environment PhysGramming to children in early childhood education to provide them familiarity with the basic principles of object-oriented programming and computational thinking.

Koulouri et al. (2015) also introduced problem-solving training for students in an IP course before starting programming. Students’ performance across two groups was compared, those with problem solving training and those without. They found that students who had completed the problem solving training performed better than those students who did not.

Different tools have been introduced in IP courses to enhance problem solving skills. Oda et al. (2015) used statistical machine translation (SMT) framework which automatically generates pseudo-code from a source code of the program. Taheri et al. (2015) introduced a web based environment named progranimate (see http://www.progranimate.com/) which uses flowcharts to find a solution for a given problem statement for novice programmers. Malik (2016b) introduced the ADRI editor for novice programmers which uses a pseudo-code technique to solve given programming problems. Hooshyar et al. (2015) introduced a Flowchart-based Intelligent Tutoring System (FITS) for improving problem-solving skills of novice programmers.

3 Research questions

It is evident from the above discussion that problem solving skills are an important component for introductory programming courses. Novices should focus on and practice problem solving strategies throughout IP courses. This research project proposes the PROBSOL applications to support teaching and learning processes in IP courses to enhance the problem solving skills of novice programmers. Moreover, this research proposes three research questions to determine the impact of the PROBSOL applications on novice programmers. These are:

  • RQ1: What are the perceptions of students regarding the PROBSOL applications in the introductory programming course?

  • RQ2: What are the perceptions of instructors regarding the PROBSOL applications in the introductory programming course?

  • RQ3: What is the impact of the PROBSOL applications on the students learning in the introductory programming course?

4 Introduction to the PROBSOL applications

The PROBSOL application is based on pseudo-code techniques. It was offered in two different modes, a web-based version (E-PROBSOL) and a mobile app (M-PROBSOL). The M-PROBSOL app is available from the Google store. Features and functionalities of the M-PROBSOL are same as the E-PROBSOL application. Figure 1 shows the E-PROBSOL interface and Fig. 2 the M-PROBSOL interface respectively.

Fig. 1
figure 1

E-PROBSOL application

Fig. 2
figure 2

M-PROBSOL application

Both versions of the application include a comprehensive selection of topics that would be expected to be included in an IP course. Questions relating to each topic are grouped together as menu items. Navigation through the topics and questions are easily achieved by clicking at the required menu and its menu items respectively. Moreover, the user can change question by clicking Next and Previous Question buttons.

The application consists of three list boxes (Random Steps, Right Steps and Solution). The Random Steps list box shows all the Pseudo-code steps as part of the solution for the given problem statement. Students select the appropriate step from the Random Steps list box and then click the Right Arrow Button, so that the selected step will get moved to Right Step list box as shown in Fig. 3. The correct pseudo-code solution for the given problem is shown in the Solution list box as shown in Fig. 1.

Fig. 3
figure 3

E-PROBSOL list boxes

The ‘Check Solution button’ is activated only when the user moves all the pseudo-code steps for the given problem statement from Random Steps list box to Right Steps list box. The ‘Check Solution button’ compares the user solution with the correct solution shown in Solution list box. If the user solution is incorrect, the Right Steps list box displays the lines or steps containing errors in red as shown in Fig. 3. The application also counts the number of errors and displays it between Right steps and Solution list boxes. Further, the application also displays different warning and error messages.

5 Research methodology and design

The first research question was explored by collecting students’ responses after introducing the PROBSOL applications in the teaching and learning process of the introductory programming (IP) course. Both versions of the application were offered to all the students registered for the IP course during the semester 1, 2018–19. Both applications were offered to the students for the whole semester. The survey was deployed to collect students’ feedback. The second research question was investigated by conducting semi-structured interviews with all instructors of the IP course for the semester 1, 2018–19. The third research question was explored by comparing the final grades of students over two semesters to determine the impact of the PROBSOL applications on the students’ achievements.

5.1 Population and ethical consideration

The survey was conducted with the IP students of Buraimi University College, Oman. 65 students participated in the survey. Of the 65 students, 52 (80%) were female and 13 were (20%) male. This trend is rare in IT so it provides us a unique opportunity to conduct this study where the majority of participants were female. The college offers degree programs in two shifts. The morning shift is only for female students and evening shift is offered for both male and female students. This particular system is not very common in Oman so our college attracts more female students compared to male students.

The semi-structured interviews were conducted with two instructors of the IP course. The data were collected after obtaining ethical approval from the college. Student participation was optional and voluntary in the survey. Data collection was anonymous in the survey. Interview data is presented without showing the instructors’ identity. Students’ grades were collected after a de-identification process was performed by the registration department.

5.2 Preparation of the survey

The survey was prepared to explore the effectiveness of the PROBSOL applications in enhancing the problem solving skills of novice programmers in the IP course. The survey consists of 35 closed-ended questions. The student survey consists of following three parts.

  1. 1.

    Demographic details

  2. 2.

    PROBSOL Application: Programming Concepts

  3. 3.

    E-PROBSOL and M-PROBSOL Applications

The demographic questions included students’ major, degree, age, gender and prior programming experience. Fifteen statements related to the course content covered were included in the second part of the survey and a five point Likert scale was used for students to indicate their agreement with each statement (1 = strongly disagree to 5 = strongly agree). The third part of the survey focused on questions (again, 15 questions) comparing E-PROBSOL with M-PROBSOL with a five point Likert scale (1 = strongly disagree to 5 = strongly agree).

6 Results

This section describes the results of this study. The first research question was explored by conducting a survey with the students who finished the IP course after introducing the PROBSOL applications in the course. The second research question was investigated by conducting semi-structured interviews with instructors of the IP course. The third research question was explored by comparing the final grades of students over two semesters to determine the impact of the PROBSOL applications on the students’ achievements.

The survey data was analyzed by using IBM SPSS (Statistical Package for Social Science, version 20) software. Two descriptive statistical methods (mean and frequency) were used to analyze the collected data.

6.1 Analysis of student survey

This section addresses the first research question which is:

  • RQ 1: What are the perceptions of students regarding the PROBSOL application in the introductory programming course?

6.1.1 Demographic details

The demographic details of the respondents are as follows:

  • 49.2% respondents are enrolled in the Information Systems major, compared to 26.2% from Computer Science and 24.6% from Software Engineering.

  • Most of the respondents (55.4%) are pursuing their studies at bachelor level as compared to 7.7% for advanced diploma and 36.9% for diploma.

  • 87.7% respondents are between 18 to 28 years old, compared to 7.7% under 18 years, and 4.6% from 45 years and over. There were no students between the ages of 29 and 44.

  • The majority of the respondents (80%) were female compared to 20% male.

  • A majority of the respondents (67.7%) do not have any prior programming experience.

6.1.2 PROBSOL application: Programming concepts

Table 1 shows the respondents’ perceptions related to PROBSOL in learning the basic concepts of computer programming. Both the means and frequencies of the responses are included in the table.

Table 1 PROBSOL application: usability

Respondents perceived ‘Understanding the programming concepts (4.03)’, ‘Design a program to solve a certain task (4.03)’, ‘Learn problem solving skill (pseudo code) (4.02)’ as the most three significant areas in learning the basic concepts of computer programming. Respondents also found that PROBSOL helped them to: ‘Learn the course content (3.90)’, ‘Focus only on problem solving skills (3.85)’, ‘Understanding programming structures (3.85)’, ‘Participate in the course activity in ways that enhanced my learning (3.68)’ and ‘Develop confidence in the subject area (3.66)’.

6.1.3 PROBSOL application: Concepts

This part of the survey covered all the main topics taught in the IP course. The means and frequencies of the responses are shown in Table 2.

Table 2 PROBSOL application: concepts

The respondents perceived ‘Designing an algorithm (4.20)’, ‘Input/output (4.16)’, ‘Selection structure (if statement) (3.90)’ and ‘Functions (3.90)’ as the most significant learning areas of programming concepts after introducing the PROBSOL application in the IP course. The respondents also found learning gain in the programming concepts of ‘Arrays (3.66)’ and ‘Repetition structures (3.60)’.

6.1.4 E-PROBSOL and M-PROBSOL applications

The final part of the survey explored students’ perceptions of the web-based and mobile versions of PROBSOL. Figure 4 shows the comparison of respondents’ perceptions related to using E-PROBSOL and M-PROBSOL to support their learning.

Fig. 4
figure 4

Comparison of E-PROBSOL and M-PROBSOL

Respondents perceive E-PROBSOL application more helpful than M-PROBSOL ‘in learning the problem solving skills’ (0.08%), and ‘as an important supplement to the normal class exercises and activities’ (0.13%). On the other hand, they perceive M-PROBSOL more useful than E-PROBSOL in ‘learning new ideas and concepts’ (0.06%), and ‘motivated them to learn the course material more than class activities that did not use the PROBSOL website’ (0.20%).

The second part of this section asked more questions related to E-PROBSOL and M-PROBSOL. The means and frequencies of the responses are shown in Table 3.

Table 3 E-PROBSOL and M-PROBSOL applications

Respondents perceive M-PROBSOL to be more interesting (3.81), easier (3.56), quicker (3.64), friendlier (3.76), flexible (3.61), powerful (3.55), better (3.60), can be used anywhere (3.86) and anytime (3.78) compared to the E-PROBSOL application. Moreover, the respondents prefer (3.59) and suggest (3.64) M-PROBSOL more compared to the E-PROBSOL application.

6.2 Semi-structured interviews of introductory programming instructors

The second research question, the perceptions of instructors regarding the PROBSOL application in the introductory programming course, is explored in this section.

Semi-structured interviews were conducted with the IP course instructors to seek in-depth feedback on the affordances and barriers of the PROBSOL application for students. The interviews were conducted with two IP instructors. The main objectives of the interviews were to explore instructors’ perceptions of:

  1. 1.

    Students’ experience with E-PROBSOL and M-PROBSOL applications in the IP course

  2. 2.

    The impact of E-PROBSOL and M-PROBSOL applications on students learning in the IP course

and to explore:

  1. 3.

    Instructors’ views on the strengths and weaknesses of the E-PROBSOL and M-PROBSOL applications

And, finally, to suggest:

  1. 4.

    any further enhancements to E-PROBSOL and M-PROBSOL applications in the context of the introductory programming courses.

6.2.1 First impression about PROBSOL applications

Both interviewees agreed that learning to code is a challenging task for novice programmers. Moreover, it is always a difficult task for an instructor to teach an introductory programming course to students who are unaware of the programming domain.

The interviewees indicated that the interface of the PROBSOL application does not show any launcher image which illustrates to novice programmers that this application covers problem solving skills. The instructors discussed the importance of problem solving skills and this application to the students.

The interviewees found the PROBSOL application to be an interactive way to familiarize novice programmers with problem solving skills.

6.2.2 Students experience with E-PROBSOL and M-PROBSOL applications

The interviewees found that students were satisfied with the applications because all the teaching topics were covered. Moreover, students were excited to use the applications because the applications were accessible on two different platforms including a website and a mobile application. The instructors suggested that students preferred M-PROBSOL rather than E-PROBSOL because M-PROBSOL is more flexible, easy to access and use compared to the E-PROBSOL.

The applications helped students to focus more on problem solving strategies which is one of the important skills for novice programmers to understand in the programming domain.

M-PROBSOL application was available only on Google store and the interviewees indicated that students requested the application also be available on iPhone store as well.

6.2.3 Impact of E-PROBSOL and M-PROBSOL applications on students learning

The interviewees found that the applications enhance students’ interaction and collaboration in class activities. Students discussed exercises with each other and shared their ideas about the programming domain. The applications provided the correct solution for each question which helped students to critically analyze their solution. Moreover, the applications were focus-oriented because the students’ mistakes (wrong steps) were highlighted in their solution which helped them to learn from their mistakes.

Students’ attitude and behavior towards doing the exercises were also improved by using the applications. M-PROBSOL motivated students to finish exercises at their own convenience and time. E-PROBSOL promoted teamwork and collaboration in the class setting.

Overall, the interviewees agreed that the applications impacted positively on the students’ learning in the IP course. They felt that the applications improved students’ problem solving skills, programming understanding, and logic capabilities.

6.2.4 Strengths of E-PROBSOL and M-PROBSOL applications

The interviewees suggested that the applications were good supporting teaching tools in the IP course. Moreover, the applications were interactive platforms for students to learn problem solving skills. Questions related to each topic in the IP course were embedded in the applications which helped students to focus on different programming constructs.

One of the challenges for novice programmers in the programming domain is how to start solving the given problem statement. The applications provided random steps to solve the problem statement which helps the novice programmers to start thinking of a solution for the given problem statement. The steps to solve the programming problems were given randomly for each question which helped students to focus only on problem solving skills without having to be too concerned much about the programming syntax.

The applications promoted practice among students which is considered one of the important skills for novice programmers (Malik 2016b). Moreover, the applications also provide an embedded question bank to the instructors.

The applications are friendly and ease to use which helps the user to focus on the solution of the given problem statement. Having the applications available as a website and mobile app facilitates the users to practice at their own convenience.

6.2.5 Weaknesses of E-PROBSOL and M-PROBSOL applications

The interviewees found that the applications are based on pseudo-code technique. Novice programmers were not familiar with the technical terms used in the solution. The applications should provide glossary of terms or use tool tips for the technical terms. Further the mobile app is only available on Google store (for android users). It should also be available for iPhone users.

6.2.6 Comparison of PROBSOL applications with traditional teaching approaches

The interviewees indicated that most of the students are grown up with technology and they liked and engaged with technology enhanced approaches to learning rather than traditional approaches. Therefore, the PROBSOL applications are a more enjoyable mode of study for students compared to the traditional teaching approaches.

The applications provide feedback immediately by showing the wrong steps in the solution. In traditional approaches it is more challenging to provide good feedback in a timely manner.

The interviewees suggested that a mix of approaches to teaching provides improved learning opportunities for students. They found that using a traditional classroom approach to teach students at least some basic knowledge of programming and problem solving strategies first provides a good foundation for students to use the PROBSOL approach to practice their newly acquired knowledge of the programming domain.

6.2.7 Suggestions for further improvement in PROBSOL applications

The interviewees suggested a number of improvements for PROBSOL. First there should be a login feature for students. Each student will have his own account. Students can save their work and monitor their progress in solving exercises.

The PROBSOL applications should also be offered in the next level of programming course so that students are able practice more problem solving skills and acquire deeper learning of the programming domain.

Additional features such as mnemonics, accelerators and tool tips should be added to the application. These features would add shortcut keys for menu items to speed up the access process of programming exercises. Tool tips can be used to enhance the understanding of the technical terms used in the solutions of the problem statement.

Finally, the interviewees suggested that if the applications are offered as a game, it will be a more challenging and rewarding process for novice programmers. Students can compete with each other and it would be more fun for them encouraging them to practice even more.

6.3 Comparison of students’ final grades

This section describes the result of Research Question 3. The third research question is as follows:

  • RQ3: What is the impact of the PROBSOL applications on the students learning in the introductory programming course?

This question is probed by comparing the final grades of the IP course for the last two semesters (Semester 2, 2017–18 and Semester 1, 2018–19). In semester 1, 2018–19, the course was offered with the PROBSOL applications and the other semester (Semester 2, 2017–18), the course was offered with the traditional approach. The comparison of these semesters will indicate the impact of PROBSOL applications on the students’ performance.

Students’ were grouped into three achiever categories (high, medium and low) based on their final marks obtained in the IP course. These categories are based on the work of Malik and Coldwell-Neilson (2017b). Students who obtain final marks in between 85 to 100 are considered as high achievers; those in between 65 to 84 are medium achievers, and those students in between 50 to 64 are considered as low achievers. If students’ marks are less than 50 they are considered as fail (Fig. 5).

Fig. 5
figure 5

Shows the comparison of students’ grades in the IP course. The PROBSOL applications provide a positive improvement

The PROBSOL applications provide a positive improvement (3%) in the high achiever category, with 13% of the students who passed the course with the PROBSOL applications in this category compared with 10% for the traditional approach. The medium achiever category shows an increase of 3%; 50% of the students reached the medium achiever category using the traditional approach, compared with 53% for the PROBSOL applications. There is also a small positive improvement in the low achiever category of 1%; 25% of students with the PROBSOL applications compared with 24% for the traditional approach. The failure rate with the PROBSOL applications semester is 6% compared with the 9% for the traditional approach semester, a reduction of 3%. Likewise, the dropout rate (those students who do not complete the course) with the PROBSOL applications semester is 3% compared with the 7% for the traditional approach semester, and it is reduced by 4%.

7 Discussion

The PROBSOL applications were offered to enhance problem solving skills of novice programmers in the IP course. The survey was conducted with the IP students to determine the impact of applications on their learning process. Overall, the overwhelming majority of students appreciated both applications in the teaching and learning process of the IP course.

The applications were offered in two different modes of learning as a website and a mobile app. The current generation of students use digital technologies extensively in their daily lives and they prefer technology enhanced learning (Sarkar et al. 2017). The current project offered learning to the students in their preferred way. Students often are bored with the traditional approach to learning programming. The application developed students’ interest, affective engagement and confidence in the subject area. This finding is consistent with that suggested by Iqbal et al. (2013).

Some textbooks related to introductory programming cover problem solving strategies only in the early chapters. PROBSOL on the other hand, provided problem solving questions related to all the teaching topics of the IP course. This process provides deep learning of programming concepts to novices. Moreover, it helps novices to practice and understand programming structures in a better way. The applications provides all the steps to solve a given problem statement which helps novices to focus only on problem solving strategies.

The applications provide correct solutions of the given problem statements which helps students to compare their solution and get immediate feedback. Errors in the students’ solution are highlighted in red which helps students to critically analyze their own solution.

The applications cover all the teaching topics of the IP course. Students learn basic programming concepts without worrying to much about the syntax of the programming language. This process discourages surface learning of the programming concepts and promotes deep learning, cognitive gain and engagement of different programming constructs. This finding is consistent with that suggested by Malik and Coldwell-Neilson (2017b).

The application was offered as E-learning (E-PROBSOL) and M-learning (M-PROBSOL). Students and instructors appreciated both applications in the teaching and learning process of the course. Two different modes of learning give more flexibility, opportunities and access to students in learning problem solving skills. Students can practice questions anywhere and anytime. This finding is consistent with that suggested by Iqbal et al. (2013).

Instructors considered the applications as additional supporting teaching tools in the course. Moreover, the applications are good alternative of traditional pen and paper learning approach in the course. The applications provide a collection of questions related to all topics in the IP course. Further, it promotes more practice for problem solving skills in the course. This finding is consistent with that suggested by Malik (2016b). Additional features such as glossary of terms or tool tips for the technical terms were suggested by instructors to enhance the usability of applications in the learning process. This finding is consistent with that suggested by Malik (2016a).

Students prefer M-PROBSOL more compared to the E-PROBSOL application in the learning process. Mobile learning is more flexible, available anywhere and anytime compared to the E-learning. Keegan (2012) concluded that ‘mobile learning is a harbinger of future learning’. Iqbal et al. (2013) discussed that ‘M-learning has some unique characteristics such as its portability, its ubiquitous nature and its individuality that make it better than E-learning in the education field’. On the other side, there are some technological shortcomings in M-learning such as small screen size, short battery life, and limited storage capacities of mobile devices (Shanthi and Al-Mukheini 2010; Hulme 2007).

The comparison of students’ grades show that the PROBSOL applications impact positively on the students’ learning in the IP course. The applications provide better understanding of the programming domain to the novice programmers. Moreover, it helps students to develop their interest and confidence in the programming domain and thus reduced attrition rates (failure and dropout) in the course. The applications help students to devise the solution of the problem statement without much worry about the syntax and semantics of the programming language. Overall, the PROBSOL applications impact positively on the students’ achievements and performance in the course. Tawafak et al. (2018) discussed that ‘the technology integrated tools emphasis on student interest in order to develop their academic performance.’ (p. 2).

8 Conclusions

The PROBSOL applications were offered in two different modes of learning (E-PROBSOL and M-PROBSOL) in the introductory programming (IP) course to enhance problem solving skills of novice programmers. The survey was conducted to collect students’ feedback. Semi-structured interviews were performed to collect instructors’ opinion about the applications.

Students appreciated both E-PROBSOL and M-PROBSOL applications in the teaching and learning process of the IP course. The applications improve programming understanding, logic capabilities and problem solving skills of novice programmers. The applications also improve students’ attitude and behavior towards doing the exercise questions. E-PROBSOL promotes teamwork and collaboration in the class setting while M-PROBSOL motivates students to finish exercises at their own convenience and time.

The applications cover all the teaching topics of the IP course and promote practice for novices. Students have to practice the problem solving skills for the whole course instead of just doing it in the early chapters. This process enhances students understanding of programming structures and promotes deep learning of programming domain.

Instructors informed that students enjoy the applications more than the traditional teaching approaches because they belong to digital natives’ generation and prefer technology enhanced learning. The applications promote problem solving skills which are considered one of the important skills for novice programmers.

The comparison of students’ grades show that the students’ perform better in all the three achiever categories (high, medium and low) after introducing the PROBSOL applications in the course. Moreover, attrition rates (failure and dropout) were also reduced in the semester offered with the PROBSOL applications compared to the previous semester offered with the traditional approach. Overall, the PROBSOL applications impact positively on the students’ achievements and performance in the course.