Teaching Problem Solving Skills using an Educational Game in a Computer Programming Course

Problem solving skills are considered an important component in learning to program in an introductory programming (IP) course for novices. This study introduced a PROSOLVE game to enhance problem solving skills of novice programmers in the introductory programming course. The game is based on pseudo-code technique. A survey was employed to collect students’ feedback and semi-structured interviews were organized to collect instructors’ opinion about the game. The results show that the game helped most of the students in understanding the programming concepts, structures and problem solving strategies. Moreover, the game supports students’ cognitive engagement, gains, and affective engagement in the IP course. Instructors appreciated the game and considered it as an additional supporting teaching tool in the IP course. Moreover, they considered the game as good alternative of traditional pen and paper learning approach in attracting students’ interest in the programming domain.


Introduction
Programming is one of the demanding fields in the computer science discipline and 'employment of computer programmers is projected to grow 8 percent from 2012 to 2022' (Bureau of Labor Statistics, 2015). In 2012, Microsoft published a report showing that American colleges are not producing enough graduates in computer science to meet expected demand up to 2020 (Microsoft, 2012). On the other hand, coping with high failure and dropout rates in the IP course is another issue for computer science disciplines (Guzdial & Soloway, 2002;Lahtinen et al., 2005;Sykes, 2007;Yadin, A. 2011;Watson & Li, 2014;Zingaro, 2015). Most of the computer science and related disciplines offer IP course at their first level and if students fail or drop out of this course, they are unlikely to enroll in a follow-on course (Wiedenbeck et al., 2004). One of the possible reasons is because the traditional approach used in teaching the IP course does not provide students all the required skills. Moreover, most of the introductory programming courses focus more on syntax and semantics of the programming language during the course and discuss problem solving strategies in the first few lectures only .
This study introduced the PROSOLVE game to enhance the problem solving skills of novice programmers in the introductory programming (IP) course. The game is based on pseudo-code technique. The game covers most of the teaching topics of the IP course such as algorithm and pseudo code, basic elements of C++, input/output, selection control structure, repetition control structure, functions and arrays. These topics represent as seven levels of the game as shown below in Fig. 1 as a menu bar. Consequently, students practice the problem solving skills throughout the course. We propose two research questions to guide the study and to determine the impact of the PROSOLVE game on novices.
The two research questions being addressed in this research study are as follows:

RQ1:
What are the perceptions of students regarding the PROSOLVE game in the introductory programming course?

RQ2: What are the perceptions of instructors regarding the PROSOLVE game in the introductory programming course?
This paper is divided into a number of sections. It starts with a literature review, followed by a brief introduction to the PROSOLVE game. The methodology adopted for this study is then described, and research results are reported and discussed. The paper concludes with a summary of the outcomes.

Literature Review
Students of the 21st century are considered as digital natives and computer is part of their everyday life. Students start using computer even before they first attend formal education. Moreover, students are significantly accustomed to many of computer's functionalities because they used to play computer games from a very early age. Consequently, substantial number of instructors suggests incorporating educational games in the teaching and learning process of the programming courses to motivate students, and pique their curiosity in the programming domain (Malliarakis et al., 2014;Akcaoglu, 2016).
On the other side, different studies reported high failure rates and lack of students' interest in the programming courses (Lahtinen et al. 2005;Sykes 2007;Guzdial and Soloway 2002;Kinnunen and Malmi 2006;Malik and Coldwell-Neilson 2017a). One of the challenges for IP students is to acquire a different set of skills (problem solving, program design, syntax and semantics) at the same time (Shuhidan 2012). The IP courses pay more attention on syntax and semantics of the programming language (Iqbal and Harsh, 2013). Moreover, some textbooks used in the IP courses also dis-cussed problem solving strategies in the early chapters only (De Raadt, 2008). The ADRI (Approach, Deployment, Result, improvement) approach was proposed in the IP course to pay equal attention on problem solving strategies and programming knowledge (syntax and semantics) (Sohail, 2019). Two problem solving strategies (flowchart and pseudo-code) were used in the Approach stage and programming knowledge was discussed in the Deployment and Improvement stages (Malik and Coldwell-Neilson, 2017b;Malik, 2016a). The ADRI editor was also prepared on the bases of the ADRI approach to reinforce problem solving strategies and programming knowledge in the course (Malik, 2016b). Gunter et al. (2008) proposed to incorporate educational games or series games in the teaching and learning of the programming courses to address the problems faced by novice programmers. These games help students to achieve specific goals, view their success immediately which enhances their self-confidence and decision making skills (Malliarakis et al., 2014). Different frameworks have been proposed and developed for educational games in some research studies (Becker, 2010;Yusoff et al., 2009;Zualkernan, 2006). Becker (2010) proposed the framework which suggested cognitive and emotional axes to investigate the goals of educational games. Cognitive axis covers mental competencies and educational goals set in this axis should meet all the six categories of the Bloom's taxonomy in educational games. The educational goals set in the emotional axis should cover emotional areas such as attitude and motivation.
Some educational games have been specifically developed for computer programming courses. Malliarakis et al. (2014) sorted these educational games into two categories. The first category of games focus on teaching specific computer programming units and the second category of games cover multiple educational goals or teaching units. Educational games focus on teaching specific programming unit include Catacombs, Saving Princess Sera (Barnes et al., 2007;Barnes et al., 2008), EleMental: The Recurrence (Chaffin et al., 2009), Wu's Castle (Eagle & Barnes, 2009), Robozzle (Li & Watson, 2011), LightBot (Piteira & Haddad, 2011), and TALENT (Maragos & Grigoriadou, 2011). On the other side, educational games focus on teaching multiple units of learning include Robocode (O' Kelly & Gibson, 2006), M.U.P.P.E.T.S. (Phelps et. al, 2003), Prog & Play (Muratet et al., 2010), PlayLogo3D (Paliokas et al., 2011), and Gidget (Lee & Ko, 2011). All these games addressed both the cognitive and emotional axes during their development (Malliarakis et al., 2014). Battistella et al. (2017) introduced three educational games in data structure course for teaching Quicksort and Heapsort. They concluded that such educational games can contribute positively to the learning outcomes and increase the students' motivation in the course. Moreover, these games promote collaboration or competition among students and making learning more fun. Theodoraki and xinogalos (2014) introduced arcade games as a means for learning programming in an undergraduate programming course. The result of students' survey shows that arcade games enhance students' motivation for learning programming, support students in comprehending complex programming concepts and engage students in carrying out programming activities. Malik et al. (2017c) introduced a web based application (PROBSOL) in the introductory programming (IP) course to develop problem solving skills. The application is based on pseudo-code technique. They also introduced a mobile app of the application to facilitate students. The application helps students to focus on problem solving skills throughout the course. Results show that students appreciated both mode of learning (Elearning and M-learning) and attrition rate was reduced. They also suggested that games can play important role in teaching programming courses and can attract students' attention in the programming domain. Moreover, Sohail et al. (2019) concluded that students preferred M-learning more than the E-learning in the IP course.

Introduction to the PROSOLVE Game
The PROSOLVE is a web-based educational game. It was developed to enhance the problem solving skills of novice programmers in the IP course. It is based on pseudocode technique. It covers all the teaching topics of the IP course such as algorithm and pseudo code, basic elements of C++, input/output, selection control structure, repetition control structure, functions and arrays. Fig. 1 shows the interface of the game.
The game consists of two list boxes (Random Steps and Solution) as shown in Fig. 1. The Random Steps list box shows all the Pseudo-code steps for a given problem statement in a random manner. A user re-arranges the given random steps of pseudo-code algorithm into its correct steps of sequential order by moving the steps, up or down using the 'Arrow Buttons' at right side of the list box. Number of clicks is recorded while moving the Arrow Buttons up or down. It displays a congratulatory message, if proper sequence is already achieved after the last click for its correct solution.
When the users' solution is ready for the given problem statement, click at the command push button, 'Get POINTS'. It shows the correct answer along with the earned Total POINTS. It also displays the number of errors and points collected for correct sequential steps to the given question. Click at the button for 'Next Question' or navigate through the required menu option to get the next problem statement to solve it by providing its correct sequence of algorithm. Point shows the number of correct steps in the solution. Repeat these steps for all the questions specified in this current level and then the game goes to the next level. Questions related to another topic in the IP course are displayed in the next level.
There are 7 Levels in this game. The player can collect one point for each correct line of the answer. The player can win a Bronze Medal, if total collected points are in between 49 to 100. Win a Silver Medal, if total collected points are in between 99 to 200 and win a Gold Medal, if total collected points are 200 or more. The player will not get any medal if total points collected are less than 50. The player can get a Cup too when completes the game. But the type of the cup depends on the total points obtained. Different types of the cups are Black, Bronze, Silver and Gold. Black cup if total points collected are less than 50 and Gold cup if it is above 200 points.

Research Methodology and Design
The first research question was probed by conducting a survey with students after introducing the PROSOLVE game in the IP course. The second research question was investigated by conducting interviews with instructors of the IP course.
The population of the survey consists of students from the IP course at Buraimi University College, Oman. Fifty-one students participated in the survey including 41 female (80.4%) and 10 male (19.6%) students. The college offers academic programs in morning and evening shifts. Female students are allowed in both shifts and male students can register only in the evening shift. This process helps the college to attract more female students.
The semi-structured interview was performed with two instructors of the introductory programming course. An ethical approval was obtained from the college before collecting the data. Data collection was anonymous and student participation was optional and voluntary in the survey. Interviews data were reported without showing the instructors' identity.

Preparation of the Survey
The main objective of the survey is to determine the impact of PROSOLVE game on novice programmers in the Introductory Programming course. The survey consists of 27 closed-ended questions. The survey has three parts.
The first part of the survey includes demographic questions. It includes major, degree, age, gender, and prior programming experience of the students.
The second part of the survey consists of questions related to programming concepts and course content. This part includes 12 questions. A five point Likert scale (1 = strongly disagree to 5 = strongly agree) is used.
The third part of the survey focuses on questions which determine the acceptability of PROSOLVE game in the IP course. A five point Likert scale (1 = strongly disagree to 5 = strongly agree) is used. This part of the survey includes 10 questions.

Results
This section describes the results of this study and probes Research Questions 1 and 2. The first research question is as follows:

RQ1:
What are the perceptions of students regarding the PROSOLVE game in the introductory programming course?

Analysis of Survey
A survey was conducted with the IP students after introducing the PROSOLVE game in the teaching and learning process of the course. RQ1 was explored by analyzing the responses of students in the survey.
The student survey consists of the following parts:

Programming Concepts
The respondents' perception in understanding programming concepts after introducing the game is shown in Table 1. The means and frequencies of the responses are included in this table.
The results show that respondents perceive the three most significant areas are with 'Understand the programming concepts' (4.16), 'Learn the problem solving skill (Pseudo code)' (3.86), and 'Focus only on problem solving skills' (3.86). The respondents also found 'Design a program to solve a certain task' (3.67), 'Learn the course contents' (3.63), and 'Understand programming structures' (3.57) significant areas after introducing the game in the IP course. The second part of this section covers questions related to the teaching topics of the IP course. Table 2 shows the means and frequencies of the responses for this section.

PROSOLVE Game: Usability
The respondents' perception in motivating and engaging them in the IP course after introducing the game is shown in Table 3. The means and frequencies of the responses are included in this table.
Respondents perceive 'Motivates me to learn programming' (4.08), 'Engages me as an active learner in programming activities' (3.88), and 'Is effective to learn programming' (3.87) as the most three beneficial areas after introducing the game in the IP course. The respondents also found the PROSOLVE game 'Helps me to prepare for programming exams' (3.82), 'helps me to develop confidence in the subject area' (3.77), 'develops skills that apply to my academic career and /or professional life' (3.75), 'Is used at home after classroom activities' (3.73),'helps me in the course activity in ways that enhanced my learning' (3.73), and 'Should also be prepared for advanced courses of programming' (3.63).

Semi-Structured Interviews of Introductory Programming Instructors
This section explores the second research question which is:

RQ2:
What are the perceptions of instructors regarding the PROSOLVE game in the introductory programming course?
Semi-structured interviews were conducted with the IP instructors to seek their perceptions regarding the PROSOLVE game in the introductory programming course. The interviews were conducted with two IP instructors. The main objectives of the interviews were to probe instructors' perceptions of: Students' experience with the PROSOLVE game in the IP course. 1.
The impact of the PROSOLVE game on students learning in the IP course and to 2.
explore. Instructors' views on the strengths and weaknesses of the PROSOLVE game and 3.
to suggest. Any further enhancements to the PROSOLVE game in the context of the introduc-4. tory programming course.

First Impression about the PROSOLVE game
Both participants agreed that the overall impression about the game is very good. The game is easy to use and helps students to understand the basic concepts of the programming domain. One instructor liked the interactive type of approach adapted in the game which is useful for students to understand the concepts of programming. Another instructor pointed out that the questions asked to solve during this game is really targeting various topics of programming.
Both participants were satisfied to use this game in the IP course because it helps them to teach programming in a better way and they witnessed an easy learning from students' side. Fun elements in this application making students coming more attracted towards different topics of programming, which otherwise will be very difficult to achieve.

Impact of the PROSOLVE Game on Students Learning
Both participants agreed that the game impacted positively on the students' learning. The game enhances students' interaction and collaboration in class activities. The correct solution for each question is provided in the game which helps students to critically analyze their approach to solve the given problem statement. Students can collect points and win medals and cups from the game which motivates them to finish exercises.
The game is available online which motivates students to complete exercises at their own convenience and time. Moreover, the game enhances students' problem solving skills, and logic capabilities of the programming domain.

Strengths of the PROSOLVE Game
Participants discussed that the game is very simple to use and user-friendly. Students' like to play the game so often even at their home, since it is online and available all the time, and that it can be accessible even through their mobile devices. The students started competing with each other using the game indirectly helping the instructors in their job. The game based application helps students to do the study by collaborative learning. Students used to get ready with their area of learning by practicing the game before the class. So students get lots of knowledge about the topic of class before its beginning and it help the instructor a lot. The teacher can use the time more effectively and more deep knowledge can be covered within a short period of lecture time. Students started helping each other, in case of doubts regarding any topic of their study and explain each other to clear their doubts by peer study. It helps to improve the interaction among students and they are coming up with better communication skills. This application promotes their logical thinking in solving a problem.
The game is a good supporting teaching tool which promotes practice among students in the IP course. Moreover, it provides question bank to the instructors.

Weaknesses of the PROSOLVE Game
There is no background image while playing different levels of the game and also the color patterns and interface remains almost the same throughout the application.
At the beginning of the IP course, students were not familiar with the technical terms presented in the solution of the given problem statement. The game should provide glossary of terms for novice programmers.

Suggestions for Further Improvement in the PROSOLVE Game
Database connectivity should be included as an added feature in this game, so that top record holders should be available to all users to induce a spirit of healthy competition among students. Data mining tools should also be included in the application, so that the instructor can make use of common mistakes made by students, error-corrections, future prediction and there by doing better knowledge management.
Participants suggested putting background images in the game. Moreover, they proposed different color combinations and interfaces for different levels of the game.

Discussion
The PROSOLVE game was prepared and offered in the IP course to enhance the problem solving skills of novice programmers. The survey was implemented to collect students' feedback and semi-structured interviews were conducted to collect instructors' opinion about the game. Overall, the students and instructors appreciated the game in the teaching and learning process of the IP course.
Students perceived that the game helped them to focus on problem solving skills. Some studies concluded that IP courses pay more attention on syntax and semantics of the programming language compared to the problem solving strategies (Iqbal and Harsh, 2013;De Raadt, 2008). This study helps students to focus on problem solving strategies without much worry about the syntax of the programming language.
The game promotes algorithmic thinking by offering all the questions related to the teaching topics of the course by using problem solving strategy (pseudo code). Students have to devise the solution of the given problem statement by using pseudo code technique which helps them to understand the problem statement in a better way. This finding is consistent with Malik et al. (2019) and Sohail et al. (2019).
The game covers different teaching topics of the IP course. Students were not just focus on how to design an algorithm but the game also gave them basic understanding of different programming structures. This process promotes deep-learning of the programming domain for students.
The game was offered for the whole semester because it covers most of the teaching topics of the course. This process promotes practice among students. Malik (2016b) mentioned that 'practice is considered an important step in grasping the precise concepts of computer programming for novices' (p. 1).
The game discourages programming shortcut. Webster (1994) discussed that in most cases novice programmers attempt to solve the problem statement directly into the computer program (Problem Statement  Code) which promotes programming shortcut. This study emphasizes the students to follow proper programming process (Problem Statement  Solution plans  Computer program).
Results show that the game helped students in learning all the teaching topics of the course. Each topic is offered as a separate level in the game which helps students to focus on that topic. A number of questions is offered for each topic which also promotes deep-learning of that topic.
Most of the students agreed that the game motivates and engages them in learning computer programming. Prensky (2012) categorized university students who were born since 1980 as 'digital natives'. The technology can play an important role to motivate students in the learning process and engages them as active learners.
The game helps students in developing their interest in the course. This process affects the attrition rates (dropout and failure) in the course which helps computer science and related departments to maintain their students' enrolment. Wiedenbeck et al. (2004) concluded that: 'Decisions about majoring in computer science and related fields are often determined by a student's success or failure in the introductory course. If a student drops out, fails, or passes with a struggle, that student is unlikely to enroll for a followon course'. (p. 97) The game is web-based which helps students to finish exercises at their own convenience and time. Students collect points and win medals and cups for their correct solutions against the given problem statements. This process also urges students to practice more questions and acquires deep learning of the programming domain.
Most of the students agreed that the game engages them as active learners in programming activities. This process supports students' cognitive gains and promotes students' affective engagement in the IP course.
Students also appreciated the idea to introduce games in the learning process of advanced courses of programming. Games bring fun and competition elements which attract more attention of students in the learning process. These games should achieve specific goals and cover all the six categories of the Bloom's taxonomy.
IP instructors appreciated the game in the teaching and learning process of the IP course. They considered the game as an additional supporting teaching tool and good alternative of traditional pen and paper learning approach. This mode of learning provides students more access, flexibility and opportunities in learning programming concepts.
IP instructors agreed that the game brings fun element and competition among students in the course. Moreover, the game promotes interaction and collaboration among students in class activities. The game provides correct solution of the problem statement which helps students to get quick feedback of their solutions.

Conclusions
The PROSOLVE game was introduced in the introductory programming (IP) course to enhance problem solving skills of novice programmers. Students' feedback was collected by implementing the survey and semi-structured interviews were conducted to collect instructors' opinion about the game.
The result shows that the game helped most of the students in understanding the programming concepts, structures and problem solving strategies. Moreover, the game supports students' cognitive engagement, gains, and affective engagement in the IP course.
Students practice the problem solving strategy for the whole semester because the game covers most of the teaching topics of the IP course. This process helps students to pay equal attention on the programming knowledge (syntax and semantics) and the problem solving strategies.
The game also motivates and engages students in learning the basic concepts of programming domain. Most of the students supported the idea that games should also be introduced in advanced courses of programming.
The game brings fun and competition elements which attract more attention of students in the learning process. Students can win medal, cup and earn points while moving from one level to another level in the game.
IP instructors appreciated the game and considered it as an additional supporting teaching tool in the IP course. Moreover, they considered the game as good alternative of traditional pen and paper learning approach in attracting students' interest in the programming domain.