Educational Game for C++ Programming Language: SLC++ Approached for Introductory

Vol. 10(3) 2021, Pg. 451 - 466 Abstract C++ programming language is widely used in the industry and has become a compulsory course to learn in most universities in Malaysia. C++ programming is a powerful language that supports many ways of a program, such as procedural, object-oriented, and functional. However, this language seems difficult to learn, especially for students not in Computer Science background. The students face a problem in understanding the concept and do not enjoy the course. Thus, the students become demotivated. Games are fun activities that can enhance the process of thinking, learning, and problem-solving strategies. With these criteria, educational games are one of the best learning methods to improve the existing learning process. This study purposely develops and evaluates a computer game for C++ programming introductory based on Snake and Ladder board game. This game named SLC++ aimed to attract the students to enjoy their study and understand the concept of a programming language. The development is based on iterative methodology, consisting of planning, design, prototype, playtest, evaluate, and deployment phases. From 120 students, 88.64% strongly perceive SLC++, with 90.83% who are motivated, 90.56% attract with the c++ language, and 87.33% understand the introductory for c++ language after completing the game.


Introduction
Malaysian's rapid growth of Science and Technology places the education sector as a determinant to achieve the advancement of Science and Technology. Therefore, the convincing potential of Science, Technology, Engineering, and Mathematics (STEM) is in line with the vision of the Fourth Industrial Revolution (Industry 4.0). The education sector needs to ensure that the education curriculum aligns with the industry to achieve that vision. Nowadays, the government is trying to boost STEM education through its Malaysia Education Blueprint 2013-2025 that seeks an enhanced curriculum. One of the focuses is a technology that enhances the programming skill among students. C++ programming is a basic language that should be known amongst students from various backgrounds. Thus, this language is a compulsory course to teach in most schools and universities in malaysia. C++ language is a powerful language that supports many ways of a program, such as procedural, object-oriented, and functional. In addition, this language is a general-purpose programming language that can be used in different applications to develop an operating system, games, and others. However, most students believe that the c++ language is complicated to understand, especially for students from different backgrounds other than the computer science course (Alzahrani et al., 2018). According to shafie and Abdullah (2020), the lack of understanding of basic concepts and syntax caused the failure in writing the codes. The c++ language also has been transformed and improved as a modern language over a decade. So, students need to learn differently from the old coding style (schafer, 2019). As a result, they have a problem understanding the concepts and realize that the programming course is not interesting enough. As a result, they become demotivated from time to time and less interested in learning the language. As a result, educators must ensure that students understand the fundamental concepts of the c++ language to prevent students from being demotivated as the language's concepts get more complex over time.
One of the fundamental parts of the c++ language is sequence structure and a selection control structure. In these two structures, students must understand the basic syntax of a language, the relational operator and logical operator concept, and how to evaluate it. Furthermore, students need to understand the problem to be solved and be familiar with the varieties of issues related to the selection. They also need some feedback in detail whether the answer is correct or not to help them learn from their error. In c++ programming, a selection statement can be a nested selection that can implement in multiway selection. The nested selection is complicated because it does not require syntax to encapsulate the if and else clause statement in a simple or compound word. As a result, students have to experience solving many problems in different concepts or situations.
Therefore, educators have proposed many teaching approaches to help students learn the concept of programming language, perceive the syntax and semantics of the program, and then implement it to solve a problem. For example, they are using virtual lab (shivacheva & nedeva, 2016), games (Arfani & Sulistia 2019;shafie & abdullah 2020;ibrahim et al. 2018), lego robotic (Majherová & Králík, 2017;Korkmaz, 2016;Chaudhary et al., 2016) and others. Based on past studies, educational games are a popular teaching method to attract students to enjoy their learning times. In addition, games are often an acceptable tool for immersive teaching where learners can very well grasp the idea of teaching materials. The games also can improve communication skills and problem-solving (ibrahim et al., 2018). In addition, games often generate a learning experience by playing games from the beginning to the end of the games and understanding the concepts that embed in the game. Therefore it encourages lifelong learning that they can remember. The past researches show the effectiveness of the game as a teaching method, such as the used of snake and ladder game to teach many courses such as english speaking for students at any levels (arfani & sulistia, 2019), mathematic skills (Fadliansyah et al., 2019), asmaul-husna and health course (De Carvalho et al., 2018).
As a result, games are reasonable as a learning method for c++ programming because of the difficulty and complexity in understanding the programming language among students. The teaching approach through the lecturers' notes, reference books, and instruction are not enough to attract students to grasp the programming language concepts. To make it exciting and tackle demotivating factors among students, this leads to the following research questions: how slc++ elements are used to improve understanding of the basic concept in c++ programming and how it will increase the motivation and attract the students in learning the c++ programming language. This study aimed to create a game for c++ programming based on snake and ladder board game (slbg) and focused on the introductory language concepts. Students can learn about language structures and essentially solve many exercises with examples of solving problems in various ways from this game. It will help them enhance and improve their programming language skills and enjoy the learning process.
The paper is organized as follows. The following section is the literature review of the study. The literature review consists of teaching and learning approaches for the programming language and board games as educational games for learning approaches. Next, the proposed work, which is in methodology, will be discussed in section 3. Section 4 discusses the result of the evaluation. It follows by the conclusion and future work in section 5.

Literature Reviews
A. Teaching and learning approach for programming language Teaching and learning approaches are now one of the most well-known studies in the field of education. As a result, most academics strive to improve these processes to increase the quality of course outcomes, particularly for challenging courses. Programming language is one of the most challenging courses, especially for beginners (díaz et al., 2021), and it is highly significant in the stem fields (science, technology, engineering, and mathematics). Therefore, various research articles on teaching and learning methodologies for programming languages have been examined. They used a variety of technology-based methods to enhance student-centered learning, including the flipped classroom (fc), flipped learning (fl), gamebased learning (gbl), and problem based learning (pbl).
The fc strategy was based on an internet of things (iot) gadget. This strategy aims to inspire and assist students toward a lifetime learning mode appropriate for teaching programming. This method allows students to practice software development in a simulator while encouraging programming practice through appealing iot gear. Lazarinis et al. (2019) and schafer (2019) used fc techniques for teaching algorithms and programming to reduce students' cognitive strain. They discovered that pupils are extremely capable of engaging and empowering the subject. As a result of this method, lecture time can be reduced, allowing more time to be spent on practical programming problems (Schafer, 2019). According to Shaarani Et Al (2017), they employ the fl technique to teach c++ programming. This strategy appears to improve student engagement by including two or more communication channels for lecturers and students, such as interactive channels such as forums, activities within moocs, and social media such as facebook and whatsapp.
Furthermore, educational games are a common method of learning programming. According to Mathrani et al (2016), students could effortlessly connect game components to advanced programming techniques. They were also very engaged in learning activities like presenting the rationale of their software in the final exam. Meanwhile, ibrahim et al. (2018) discovered that using games to teach programming stimulates students to study and helps them have a positive attitude. Typically, researchers create the game by combining exercises and lecture material with enjoyable design elements from various game genres. This idea was utilized by ibrahim et al. (2018) to introduce a game for self-learning of "programming introductory topic using c++" for students at the university of technology malaysia (utm). They discovered that taking this method will pique students' interest in the subject.
Meanwhile, problem-based learning (pbl) is a teaching method that students learn by addressing real-world or open-ended issues. Pbl activities are typically used within the context of a particular module and focus on more minor scale problems for which pre-existing solutions may exist (Gao et al., 2019;Ibrahim et al., 2018). This methodology has been used to teach programming using lego mindstorms tools (Majherová & KRÁLÍK 2017;Chaudhary Et Al. 2017;Korkmaz, 2016). Furthermore, Chis et al (2018) compare the problem-based learning approach to the flipped classroom (fpbl), pbl, and traditional teaching. This research looked into how to teach programming to primary school children. Fpbl had a significantly more substantial effect on boosting students' learning performance than the other two teaching approaches, according to the findings. Thus, this pbl methodology appears to improve students' programming skills and motivate them to study more.

B. Board Games as Educational Games for Learning Approached
In order to improve the teaching and learning process, board games have become a popular education method. This type of game necessitated on-board movement that adhered to the regulations. Checkers, monopoly, chess, snakes and ladders, scrabble, and crossword puzzles have all been used in the teaching and learning of some courses. The games will be selected based on the games' applicability and learning idea.
For example, the researchers used snake and ladder game to teach many courses such as english speaking for students of all levels, english grammar social studies treet food safety knowledge for elementary school (Hadisuyitno et al., 2017), and asma al-husna (meriyati et al., 2019). Some researchers combined multiple board games and other approaches in teaching courses to match the courses' suitability. For example, Fadliansyah et al (2019) combined snake and ladder and jigsaw puzzles to teach mathematical skills communication. Viray (2016) used magic square and crossword puzzles to teach english by focusing on vocabulary bank. Meanwhile, siwi and widyaningrum (2019) have done a study to identify the effectiveness of a combination of bibliotherapy and snake and ladder game's therapy on stress hospitalization in school-age children. Some studies, such as by lodzikowski and jekiel (2019) and de Carvalho et al (2018), employed the board game as a medium for receiving feedback on the following teaching process.
As a result, most of them found that board games could facilitate a joyful medium in teaching courses. Furthermore, the board games can increase awareness regarding the role games in education, understanding others, practical and self-motivated (Syawaluddin et al. 2020;Ibrahim et al., 2018;Shafie & Abdullah, 2020). A board games approach also gives all actors freedom in teaching and learning, understanding the context, and creating a creative learning and teaching process (lopez-pernas et al., 2019). As a result, they become active learners and engage very well in the teaching and learning process (ibrahim et al., 2018; meriyati et al., 2019). Scirea and valente (2020) also agreed that selecting board games as a tool in teaching computational thinking helps students do the debugging and testing process for various programming games and become more active learners. Furthermore, the collaboration between the players and resource management in real-time game progression has been developed through board games. The result also shows that combining two approaches can increase the effectiveness of educational games and give more impact and joy to the users. The games also create a learning experience by playing games from start to end. So, it allows lifelong learning to remember all the contents in the games for a long time.

Methodology
According to (carreno-leon et al., 2018), gamification refers to the use of elements and concepts of game design in non-gaming contexts. The game's concept will motivate the participants to involve and engage with other people. Thus, it will transform something that is not interesting into an engaging activity. This approach is not a new method in teaching, but the implementation of the games with the course to be taught is based on the creativity of the developers to make the learning process more fun.
This study focused on introductory in c++ programming. An iterative approach methodology has been chosen to develop the slc++ game as in the preliminary study (yusof et al. 2020). However, this research methodology has embedded a three-layered thinking (tlt) model (ibrahim & jaafar, 2009) to leverage the educational game's pedagogical and design aspects. This iterative approach involves six phases: planning, design, implement, playtest, evaluation and deployment, as shown in figure 1.

Figure 1: iterative methodology A. Planning
In the planning phase, the tlt model will focus on planning game goals synchronize with the learning objectives and curriculum of the c++ programming language course. The students should understand programming languages such as identifier, variable and operators, and syntax in the introductory concept. Besides that, they have to know the decision control instructions such as one-way, two-way, and multiway selection. One of the learning objectives is to construct an algorithm based on the problem solving given.
Based on (brown & wilson, 2018), there are a few tips in teaching programming language. First is one-to-one instruction or peer instruction. Besides that, live coding lets lecturers or students implement and test the code directly to know whether the answer is correct and get the results in various ways. They also need to know the basic syntax and have a step-by-step guide to solving existing problems from basic to advanced. The teaching videos with the images, audio, and graphics also help them enjoy and understand their study to attract the students. Finally, lecturers have to be creative and not just write a code, but try to enjoy their learning process. Thus, the slc++ game has been designed to fulfill all the criteria and tips based on brown and wilson (2018).

B. Design
Tlt model emphasizes three designs; game style, game task, and game interface. The game style is the game goals, and the game tasks are how the game will enhance the player's knowledge and skills. Meanwhile, the game interface is the way the game attracts the players to concentrate on the game. According to ibrahim et al. (2018)  The slc++ has been designed to fulfill some elements ticks in figure 2 above. This game is created using powerpoint software. A 100 square game board with ten rows is designed for slc++. The players start at the board, at a symbolic empty square, and roll six-sided dice. This game has been implemented based on traditional slbg but has been innovated by changing some rules as below: I. If the player lands on a ladder, they must answer the question before climbing them up, respectively. If they answer the question correctly, they will climb up the ladder; otherwise, they will stay in the same position. II.
If the player meets the snake, they have to slide down if they cannot answer the question given. Otherwise, they stay in the same position. To win the game, the players will be through 5 stages in the game. A video will be given for each stage to understand the concept and answer the question presented in that stage. The stage starts from the easiest to the difficult level until they reach the finish line. The first stage begins with the most straightforward stage about the introductory statement that involves selection control structure. Then it will continue with other stages with the different difficulties that cover one-way, two-way and multiway selection. Finally, a question will be given randomly in various forms such as multiple-choice (mcq), true-false and short-structure. Thirty questions have been provided for each stage. For the short-structure question, the players have to solve the problems in the online terminal embedded in the game. The player will write and compile the code to check their answers. The suggestion answer will be given after the player is already satisfied with their code. They also will be given a few solutions in answering the questions. Besides videos provided in the game, the short notes of the topic or hint also will be given to the respective player if they are stuck in solving the problems.

C. Prototype
The main interface of the game is shown in figure 3. The interface begins with the game board and the brief of the rules with the main function.

Figure 3: Rules of Slc++
The storyline of the game is similar to slbg. The game starts by rolling the dice, as in figure  4. This game involves two players/groups where the first player will indicate the green colour marker and the second player indicate a yellow colour marker as shown on the board. The marker will move when the player clicks on the dice. The number on the dice determines the number of steps the marker moves. The movement of the marker is based on the rules of the game. The player will roll the roller to get the questions from each stage, as shown in figure  5. If the players get the short structured question, they will be given a terminal to write and compile the code, as showing in figure 6. As shown in figure 7, the game will be playing corresponds to the scheme of the activities or stages of the gamification technique from the students' perspective.

D. Playtest
Playtest is a quality control phase in which design problems are tested before the method is tried on a group of students. This phase involves five users who check all the rules and materials whether they comply with the syllabus and the level of the players. Aside from that, users examine the game's function and interface to ensure they are functional and userfriendly.

E. Evaluate
The slc++ game was evaluated by collecting feedback from respondents via a questionnaire survey. The game's interface, ease of use, effectiveness, and satisfaction have all been assessed (yusof et al. 2020). The initial parameter interface was tested to see how satisfied students are with the slc++ game to enhance concentration and how interactive the slc++ is. Ease of use refers to how simple the application is to use and how well it assists players in completing game tasks. Meanwhile, the effectiveness parameter defines how the game motivates students to learn and understand the c++ programming language. Finally, game satisfaction will describe how students feel and are satisfied as a learning tool for c++ programming. Overall, these characteristics determined how dependable the game employed as a learning tool for c++ programming in motivating and attracting students to learn this course. Aside from that, the survey was used to see how well students understood the c++ programming language after they finished the game. A total of 13 questions were compiled into a 5-point likert scale, with 1 representing strongly disagree and 5 representing highly agreed.
A total of 120 people, 44 males and 76 females, will be instructed to play the games. They are students from the faculty of computer science and mathematics at the uitm seremban campus. One of the researchers will use google meet to demonstrate this game. All of the respondents took part in the game and were allowed one hour to complete the questionnaire or until they were ready. For all respondents, the game rules are clarified and attached as instructions. After they've completed the game, they must complete the questionnaire and answer all of the questions.

Deployment
The process in all phases will be iterate until there are no improvements to be made. The slc++ will be used as one of the learning tools for the c++ programming language among students.

Results and Discussion
As seen in the table below, the findings for the questionnaire have been taken out and analyzed. The mean and standard deviation (sd) of four criteria have been calculated. Based on the results, the standard deviation values are concentrated around the mean values, which is around 0.5. It shows that most of them have the same opinion about all the criteria of the game. The mean value calculated from a 5-point likert scale, which indicates that the respondents are pleased with the slc++, is more than 4. Three parameters got a mean value of more than 4, and 1 parameter is less than 4, which is interface criteria with a 3.93 mean value with the sd is 0.57. Meanwhile, the game's ease of use and effectiveness got the same deal, which is 4.21 on average, and the sd values are 0.54 and 0.56. The ease of use criteria gets the mean value more than 4 because they already understand the simple rules of slbg, although it has been modified for slc++. Thus, it will not burden the students in understanding the concept of the game. The effectiveness indicates that all respondents enjoy and understand the basic programming language concept after finishing the game. Besides that, the average game satisfaction is a 4.18 mean score, and the sd is 0.54. It shows that the students agreed that slc++ is one of the learning methods besides a formal approach from the lecturers.  The results shown in figure 8 below concluded the students' feelings when they used slc++ as a learning method for c++ programming. About 88.63% of students positively perceive all criteria measured towards slc++. Meanwhile, around 90.83% have been motivated to learn the c++ language because they enjoy playing the game and learn through slc++. At the same time, 87.33% understand the introductory level of c++ language after they complete the game. They agreed that the game might assist them in learning the c++ language in a self-paced and stress-free manner. About 90.56% feel attracted to the c++ language after complete the game. Although in the surface part, they understand the introduction of c++ language and are willing to take a challenge in understanding c++ language. In addition, about 30 samples of students from the respondents were given a short quiz on the introductory topic and selection control structure to see how well they understood the concept in c++ programming. The students have been given questions from the basic syntax Perception of Students Toward SLC++ to the solving problem part. The total mark for that quiz is 30 marks. Most of the students managed to get an average of 23 marks for that quiz.

Conclusion and Future Works
This paper presented the effectiveness of the educational game; slc++ as one of the learning approaches for c++ programming in the introductory level for students in higher institutions. In addition, the satisfaction of the game has been evaluated by disseminating the questionnaires to all respondents. It is apparent that most of the students give a positive response to the slc++. Most of the students who used slc++ found that they enjoyed learning c++ programming and understanding the programming concept. They are eager to finish the game and compete against the other players, although they must accomplish all of the tasks that consist of a few concepts and program code implementation to attain the game's goal. In that circumstance, they were not under any pressure to complete the entire syllabus covered in the game.
This study concludes that game-based education can enhance motivation and attract students to learn the C++ programming language with less stress. At the same time, they will understand the concept embedded in the game. C++ programming has been said one of the challenging courses to learn, especially without the lecturers' guidance. The guidelines from Brown & Wilson (2018) have been embedded in the SLC++ game to make students more clearly understand the programming concept with less direction from the lectures. The TLT model has been ensembled with the iterative methodology to leverage the SLC++ game's pedagogical and design aspects. The SLC++ game development seems to increase students' motivation to learn C++ programming and more enjoyable to understand the concept of programming. At the same time, the students become more engaged in their learning, improve their cognitive function, problem-solving and strategic thinking. The idea embedded has been followed the syllabus guidelines with the pedagogical concept.
However, a few enhancements and extensions should be developed to meet the needs of the students. In the future, the game should be upgraded to 3d games to improve the enjoyment and interactivity of the games. The game also should be extended to other topics in the syllabus. Besides that, additional studies examining the game's effectiveness should be conducted using different environments such as primary school, secondary school, and noncomputer science backgrounds. The studies can also be carried out by exploring the potential of educational games from different perspectives, such as student self-learning time, retaining students' engagement, and a collaborative tool. In addition, the concept of the slc++ game can be applied to another programming language.