Gamification-Based Learning Framework for a Programming Course Firas Layth Khaleel Faculty of Information Science and Technology Universiti Kebangsaan Malaysia Tikrit University - Iraq
[email protected] Abstract— Students occasionally find it difficult to learn new programming languages. Previous work showed that students have experienced ineffective learning, lack of interest towards this course and lack of motivation. The rationale for this is that in previous studies, some researchers have mentioned the use of game elements but none have mentioned a gamification framework that integrates the requirements for learning programming language subjects. Therefore, this study proposed gamification framework that consists of game elements and programming learning requirements. This framework is verified by lecturers and students. The findings shown, the mean score of each combination of programming learning requirements and game elements is more than 4.00. Keywords— Gamification, Game elements, Game Mechanic, Motivation, Programming Language.
I.
INTRODUCTION
Gamification refers to the use of game element in a nongame context to increase engagement between humans and computers and solve problems effectively [1, 2, 3, 4, 5, 6, 7]. Some researchers used different framework related to gamification technique such as Game-based learning (GBL) is increasingly used in learning environments, and thus several frameworks have been proposed for their use and design. UniGame: Social Skills and Knowledge Training [8] is a framework designed to help teachers apply GBL within the classroom and has been applied in higher education and lifelong learning scenarios. One of the objectives of this framework is the possibility of using different educational games within different subjects, with a focus on social games, virtual communities and collaborative learning. Games can be utilised in online or face-to-face classes. Another GBL model was proposed by [9] and includes a four-dimensional framework (FDF) for selecting and using games that may also support game design and development processes. According to [10], the features of four frameworks and models for GBL and proposed certain features that an educational game must contain. More recently, [11] proposed the Applied Behavioural Analysis - an empirically-validated method of teaching - as a framework to fulfil the requirements for designing successful educational games. [12] employed a gamification approach for their framework but depended on social games to extract game elements; hence, insufficient game elements were extracted for this framework. Meanwhile,
978-1-5386-0475-5/17/$31.00 ©2017 IEEE
Noraidah Sahari Ashaari, Tengku Siti Meriam Tengku Wook and Amirah Ismail Faculty of Information Science and Technology Universiti Kebangsaan Malaysia
[email protected],
[email protected] and
[email protected] [13, 14] used serious games as the main component in their frameworks without considering other aspects. Gamification is an integral part of an application because it can ensure the effectiveness of its usage. Within learning environment, the benefits of Gamification elements cannot be ignored because the main goal is to increase user effectiveness and understanding within a fun and enjoyable learning thereby yielding high user performance. Based on previous section, this research tries to solve the problem through a Gamification approach to verify the effectiveness of applying a Gamification approach to students especially in difficult subjects such as Programming Language courses (ie. HTML, CSS, SQL, Visual Basics, C++/Java and Machine Language). In conclusion, some researchers have mentioned the use of game elements but none have mentioned a gamification framework that integrates the requirements for learning programming language subjects. Therefore, the details of gamification framework’s construction are presented in the following section. II. RELATED WORK In this section will discuss the previous issue of learning programming language with the previous gamification framework that related to this study, as below. A. Learning Programming – Challenges and Issues The most common problem that students who learn programming languages encounter are the practical, which require them to practice and hone their programming skills so as to become more adept at it [15]. Memorising the reserved words in code writing is the most common predicament that both old and novice students face when learning various Java programming levels. Writing the syntax code of programming languages can be frustrating for students who are new to the subject [16]. Reducing the difficulties for students when it comes to understanding the concepts and rules of a programming language can enhance their motivation and competency to learn the course material. Thus, [17] recommended the implementation of a game-based approach such as a Webbased Multiplayer Online Role Playing Game application to increase student learning activity. He believed that this would cater to the sense of fun and interest inherent in learners. [18]
mentioned the use of a mobile platform, which is becoming an indispensable tool for many students and educators. This platform could also help increase the motivation of novice students to learn despite the difficulties they face in understanding the principles of the Java programming language, especially the “introductory concepts”. Another aspect of learning Java programming was highlighted in one study that advocated the proper mechanisms of generating an Android application based on Java language [19]. Studies by [20] have shown that students have difficulty in solving programming problems, particularly secondary education students learning basic algorithms. [21] identified some major problems in learning programming, particularly in the introduction phase of formal programming. Teaching systematic, object-oriented software development to undergraduate students is difficult, as the students must develop several complex skills. [22] and [23] explained that, Java is difficult and this is reflected in the general fear felt by students with regard to learning Java. Java is an object-oriented language; thus, in learning this language, students must think of class, objects, and methods. This activity is actually the most challenging part for novice students. In fact, many learners cannot grasp the term “object-oriented” and have no clue as to how to deal with the “object”. Object-oriented programming is the greatest dilemma in learning a programming language [24]. A group of researchers adopted a questionnaire to analyse the students perspective, in terms of difficulty, of learning Java. The result of the analysis confirmed that the students face learning difficulties in studying the topics of Java programming such as object-oriented concepts. [25] assessed the perspective of students on the difficulty of learning Java and attempted to determine a solution to solve this dilemma. Their study identified the best solution to be game-based learning, which can serve as an alternative approach to teaching and learning computer programming subjects. Meanwhile, [26] attempted to make object-oriented programming subjects easier for students to understand by suggesting that all Computer Science and Software Engineering students learn at least two to three different object-oriented programming languages before they graduate. Another reason why students struggle with learning programming languages is that they do not focus on their lessons; in other words, they think of the trivial details instead of concentrating on the essential ones [27]. Many teaching materials used in universities discount the essential issues of programming courses. This circumstance has led to bad coding habits, which cause students to unconsciously write incorrect code from the beginning [28]. Computer programming courses can be difficult, and student drop-out rates tend to be high because of insufficient time for learning and a lack of motivation. [29] and [30] clarified that difficulty in teaching introductory programming often results in higher failure and drop-out rates in such courses. It was found that around 35% to 50% of students dropped out, failed, or withdrew from the programming course in the Computer Science department [31, 32]. Students who register with the Computer Science Department might not have any background in computing,
therefore the main problem becomes how to motivate these students as well as how to make computer programming fun [33]. [34] explored the effects of applying programming environments to novice students studying Computer Science. Additionally, [35] mentioned in their study that new students have difficulty in learning programming languages. The subsequent section presents a preliminary study to investigate issues in learning a programming language. This study is conducted in an effort to verify the research problem. This study concludes that there are two main problems of learning technical subjects: loss of interest and lack of motivation, by students. These two main problems have made learning of these technical subjects ineffective, there are several researchers [16, 17, 36] have attempted to solve these issues through different methods, such as (1) they used digital gameplay and educational game application for student problems that concentrate on trivial details instead of the essential ones in syllabus; (2) web-based java for memorising reserved words in code writing issue; (3) java programming laboratory for inadequate practice example in learning programming; and (4) visualisation in order to explain the concepts object-oriented programming. B. Gamification framework There are several frameworks that outline gamification theoretical foundations and how gamification systems could be analysed [37], such as Self-determination based on [38, 39], intrinsic and extrinsic motivation are based on [40], Behaviour Change in transtheoretical framework are based on [41] and finally (situational relevance, situated motivational affordance, universal design for learning, and user-centred design are based on [39]. [38] developed a framework based on self-determination theory that emphasises the concepts of autonomy (personal will to action), competence and social relatedness. The framework includes four components: (1) identification of the main objective, or outlining the reasons behind the use of gamification; (2) identification of the transversal objective, or what intrinsically motivating factors the system seeks to provide; (3) determining what game elements will be used based on how they relate to the concepts of self-determination theory; and (4) the final part of the framework, which addresses how to evaluate the framework in applied systems such as in term of Autonomy (Profiles, Avatars, Macros, Configurable interface, Alternative activities, Privacy control, Notification control); Competence (Positive feedback, Optimal challenge, Progressive information, Intuitive controls, Points, Levels, Leaderboards); and Relation (Groups, Messages, Blogs, Connection to Social Networks, Chat). [40] consolidated a number of sources to facilitate the development of a service-based gamification strategy. These “gamified service bundles” are comprised of a core offering based on the desired usage objectives and a gamification layer, made up of game design elements. The framework is designed to elucidate how gamification can operate on intrinsic and extrinsic motivators to bring about behavioural change and reframe activities such as learning, as shown in Table 1.
TABLE 1 GAME DESIGN ELEMENTS, DYNAMICS, AND MOTIVES Game Design Element Game Element: Game Element: Dynamics Mechanics Documentation of Exploration behaviour Scoring systems, Collection Badges, Trophies Rankings Competition Ranks, Levels, Acquisition of status Reputation points Group tasks Collaboration Time pressure, Tasks, Challenge Quests Avatars, Virtual Development/organisation worlds, Virtual trade
Motives Intellectual curiosity Achievement Social recognition Social recognition Social exchange Cognitive stimulation Self-determination
[39] proposed a user-centred framework for meaningful gamification, which was built upon intrinsic (or internal) motivation rather than extrinsic (external) motivation. Extrinsic motivation has been shown to produce a variety of negative effects, including decreased intrinsic motivation [42]. [39] outlines a number of core theories that could inform a more intrinsic gamified strategy for meaningful engagement. Organismic integration theory, a sub-theory of selfdetermination theory, proposes a continuum of motivation intentionality mediated by internal and external methods of control, starting from a lack of intentionality (no interest or motivation), moving through extrinsic motivation at different levels of external or internal control, and ending with internally-controlled or autonomous intrinsic motivation [43]. In particular, this theory suggests that meaningful game elements are intrinsically motivating regardless of any external rewards that may be associated with them. Situational relevance requires the user to make decisions about what is meaningful. Situated motivational affordance points to the necessity of a match between the user’s background and the gamified setup - an understanding of context is essential. Universal design for learning considers the ways in which to provide the best experience for a diverse range of users. This is considered in three ways: diverse presentation of content; mastery through a multitude of activities; and multi-linear learning paths. [39] discussed that user-centred design that places the user at the centre of the experience and the act of designing with users’ needs and desires in mind links these otherwise disparate theories together. In a similar effort, [41] developed a value-based gamification framework for designers, aiming to encourage and harness intrinsic motivation. The framework comprises five values: (1) information, as in prompt and necessary; (2) empathetic values, based on virtual characters and social engagement; (3) persuasive values, a particular form of information that provides a future outlook based on current behaviours, actions, and outcomes; (4) economic values, related to collection and ownership; and (5) ideological values, defined as beliefs implicitly supported through stories and other message formats. This framework is not stand-alone but is instead meant to complement existing mechanics-based frameworks.
In conclusion of Table 1, all previous gamification frameworks have been based on self-determination theory, intrinsic and extrinsic motivation, situational relevance, situated motivational affordance, universal design for learning, user-centred design, and the transtheoretical model of behaviour change. This leads to the present study, in which a gamification based learning framework is proposed that consists of game elements integrated with programming learning requirements. The rationale for this is that in previous studies, some researchers have mentioned the use of game elements but none have mentioned a gamification framework that integrates the requirements for learning programming language subjects. III.
GAMIFICATION-BASED LEARNING FRAMEWORK
According to the issues of previous research, the study proposed a Gamification-based learning framework that consists Gamification elements as game elements [7] and programming learning requirements [6], as shown in Figure 1. Previous research [6, 7] summarised the requirements and game elements for the gamification framework, which were also based on previous research, expert opinions and the perspectives of gamers and students, were also presented. The integration of game elements with programming learning requirements are outlined based on two issues/components; which are to increase students motivation and to increase student interest in learning programming. Students’ demotivation with regards to learning programming language could be overcome by applying game rules in learning. According to the identified game elements, this study suggests that game rules such as Badge, Leaderboard, Top 10, and Points (Scoring System) or Stars could increase student motivation by building an enjoyable environment for users and consequently induce students’ interest in learning a programming language. Going back to Chapter 2, the demotivation of students is the first issue involved in learning programming language [44]. Students motivation is one of the programming learning requirements. Using game rules in learning means that when students engage in activities during class or learning application such as answering questions or completing a particular task, teachers or system would award them with Badges, Points or Stars. These activities could motivate students to continuously doing well in order to get rewarded. This also indicates how the students/players have performed [46]. Points are basic elements of a multitude of games and gamified applications, whilst Badges are defined as visual representations of achievements [45] that can be earned and collected within the gamification environment [46]. Ranking lists such as Leaderboards and Top 10 lists are instruments that allow users to compare points, achievements and the levels of players [47]. In order to overcome students’ demotivation, basic concepts and explanations based on the latest references and sources, such as learning materials or e-content. Using updated references would keep students up to date with the latest changes to fundamental concepts. These basic concepts can be delivered as e-content such as videos and animations with multiple choice or drag-and-drop questions for assessment. Additionally, the use of multiple-choice or drag-and-drop
questions would help students to answer them with a single click, without the need to write long answers. Applying the basic concepts of learning programming helps to overcome the issue of demotivating students in learning programming. The other issue in learning programming language is lack of interest in learning. The proper requirements for learning programming language are Simplicity, difficulty level, Cognitive Efficiency and Practice. Students do not simply need to memorise the reserved word in learning programming. They need to practice more, and when they practice, they will remember better. This could enhance cognitive efficiency in using the proper reserved word. Student assessment must begin with simple questions and move towards more difficult questions. This can represent the difficulty of questions based on Timer, Countdown, Stage and Level as represented in the user’s profile information. Additionally, the requirements to learn programming language are Real-Time Reactions and Response to Events: that is, most students would like to perform a particular task, answer questions and gain feedback and results in real-time. This includes seeing their answers displayed in real-time. Furthermore, they also like to compete with others and monitor their Results, Report, Dashboard, Percentage of Competency and Progress Bar in real-time. All of this allows the issue of lack of interest in learning programming language to be overcome. Consequently, the study suggests the use of a group of game elements such as Results, Report, Dashboard, Percentage of Competency, and Progress Bar to overcome lack of interest in learning a programming language. Simplicity, Difficulty level, Cognitive Efficiency, and Practice examples and tests are also programming learning requirements. Students must practice many exercises and examples to enhance their knowledge. Simplicity must be enforced using different difficulty levels. Difficulty level refers to the assessment difficulty as a measure of the simplicity of each stage, wherein the user is able to solve a particular problem in different domains, which can be achieved using cognitive efficiency. Therefore, this study suggests the use of a group of game elements such as Stage, Level, Countdown, Profile Information, Pictures and Avatars to overcome lack of interest in learning a programming language. IV.
METHOD
A quantitative method using a survey approach was employed. The questionnaire began with an explanation of the matching between the game elements of the gamification technique and programming learning requirements. The purpose of the questionnaire is to verify the framework constructed based on feedback from real users. A total of 35 participants (5 experts and 30 undergraduate/postgraduate students from Universiti Kebangsaan Malaysia, Universiti Putra Malaysia, and Universiti Tenaga Nasional were chosen for participation [48]. The five experts on teaching programming languages were invited to answer the questionnaire. All the students were enrolled in Semester 2 (2014-2015) and between 21 to 31 years of age). All questions, which were based on the outcomes of game elements and programming learning requirements. The criteria used in the
study were that the participants must possess at least 10 years of experience in teaching a programming language. And also the criteria used to select the sample in the study were that the participants must belong to one of the Computer Science departments. V.
RESULTS AND DISCUSSION
The demographic result for students illustrate that 100% of the students were male, with 90% aged between 21 and 25 years old and 10% aged between 26 and 30 years old. In terms of qualifications, 90% hold a Bachelor’s degree and 10% hold a Master’s degree. Additionally, 90% of students were from UKM and the remaining 10% were from other universities. The following section analyses the information provided by experts and students in order to verify the compatibility between programming learning requirements and game elements, as shown in Table 2. TABLE 2 EVALUATION OF ASSOCIATIONS BETWEEN PROGRAMMING LEARNING REQUIREMENTS AND GAME ELEMENTS Learning issues in programming subjects Student demotivation
Effective learning Programming learning requirement Using game rules in learning
References and basic concepts
Lack of interest in learning
Real-time Reaction and Response to Events
Simplicity, Difficulty level, Cognitive efficiency, and Practice
Game elements/ learning materials Badge Leaderboard Top 10 Points (Scoring System) or Stars e-content such as video/ animation MCQ questions Result in Real-time Report Dashboard Percentage of Competency Progress Bar Stage Level Countdown / Real-time Profile Information Pictures or Avatars
Experts (N=5) Mean S.D
Students (N=30) Mean S.D
4.80 4.60 4.60 4.80
.447 .548 .894 .447
4.57 4.73 4.77 4.60
.728 .583 .626 .724
4.60
.548
4.50
.731
4.60
.548
4.67
.661
4.40
.894
4.70
.651
4.80 4.40 4.60
.447 .894 .548
4.67 4.60 4.63
.606 .675 .615
4.20
.837
4.67
.661
4.40 4.80 4.40
.894 .447 .894
4.63 4.70 4.73
.615 .651 .521
4.40
.894
4.73
.521
4.40
.894
4.87
.434
In conclusion, the survey with experts and students resulted in acceptance from the two perspectives reflected in this study, as each one scored a mean of more than 4.00, meaning the integration between programming learning requirements and game elements satisfied the ‘more than agree’ criteria. The results shown all participants showed acceptance towards the integration of requirements to learn a programming language and game elements in order to overcome learning issues in programming subjects as shown in Figure 1.
FIGURE 1 GAMIFICATION FRAMEWORK
VI.
CONCLUSION AND FUTURE WORK
This study mainly focused on two main components of gamification based learning framework construction, which are game elements and programming learning requirements. These elements of game and programming learning requirements are validated by multiple perspectives (experts and students). Then, the association between these components is also verified through the use of the survey method. In the end, gamification framework could solve two main issues of learning programming language which are students demotivation and uninterest in Learning programming subjects, as presented in Figure 1.
[3]
[4]
[5]
[6]
[7]
ACKNOWLEDGEMENTS This work is supported from Universiti Kebangsaan Malaysia / Faculty of Information Science and Technology Research Center for Software Technology and Management Multimedia Software and Usability Research Group. Grant No. is FRGS/ 2/ 2014/ ICT05/ UKM/ 02/ 1. JPT-KPM ID: 6891078756. [1]
[2]
References
S. Deterding, D. Dixon, R. Khaled, and L. Nacke, "From game design elements to gamefulness: defining gamification," in Proceedings of the 15th International Academic MindTrek Conference: Envisioning Future Media Environments, 2011a, pp. 9-15. S. Deterding, M. Sicart, L. Nacke, K. O'Hara, and D. Dixon, "Gamification. using game-design elements in non-gaming contexts," in CHI'11 Extended Abstracts on Human Factors in Computing Systems, 2011b, pp. 2425-2428.
[8]
[9] [10]
[11]
[12] [13]
F. L. Khaleel, N. S. Ashaari, T. S. Meriam, T. Wook, and A. Ismail, "The study of gamification application architecture for programming language course," in Proceedings of the 9th International Conference on Ubiquitous Information Management and Communication, 2015a, p. 17. F. L. Khaleel, N. S. Ashaari, T. S. Meriam, T. Wook, and A. Ismail, "User-Enjoyable Learning Environment Based on Gamification Elements," in International Conference on Computer, Communication, and Control Technology (I4CT 2015),, Kuching, Sarawak, Malaysia, 2015b, p. 221. F. L. Khaleel, N. S. Ashaari, T. S. Meriam, T. Wook, and A. Ismail, "The Architecture of Dynamic Gamification Elements Based Learning Content," Journal of Convergence Information Technology, vol. 11, pp. 164-177, 2016a. F. L. Khaleel, N. S. Ashaari, T. S. Meriam, T. Wook, and A. Ismail, "Programming Learning Requirements Based on Multi Perspectives," International Journal of Electrical and Computer Engineering, vol. 7, pp. 1-8., 2017. F. L. Khaleel, T. S. M. T. Wook, N. S. Ashaari, and A. Ismail, "Gamification Elements for Learning Applications," International Journal on Advanced Science, Engineering and Information Technology, in press, vol. 6, pp. 868-874, 2016b. M. Pivec and O. Dziabenko, "Game-based learning in universities and lifelong learning:" UniGame: Social Skills and Knowledge Training" game concept," Journal of Universal Computer Science, vol. 10, pp. 1426, 2004. S. De Freitas and M. Oliver, "How can exploratory learning with games and simulations within the curriculum be most effectively evaluated?," Computers & Education, vol. 46, pp. 249-264, 2006. P.-H. Tan, S.-W. Ling, and C.-Y. Ting, "Adaptive digital game-based learning framework," in Proceedings of the 2nd international conference on Digital interactive media in entertainment and arts, 2007, pp. 142146. C. Linehan, B. Kirman, S. Lawson, and G. Chan, "Practical, appropriate, empirically-validated guidelines for designing educational games," in Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 2011, pp. 1979-1988. J. Simões, R. D. Redondo, and A. F. Vilas, "A social gamification framework for a K-6 learning platform," Computers in Human Behavior, vol. 29, pp. 345-353, 2013. I. Mayer, "Towards a comprehensive methodology for the research and evaluation of serious games," Procedia Computer Science, vol. 15, pp. 233-247, 2012.
[14] S. D. Vermillion, R. J. Malak, R. Smallman, and S. Fields, "Linking Normative and Descriptive Research with Serious Gaming," Procedia Computer Science, vol. 28, pp. 204-212, 2014. [15] X. Wei, "Research of practical course teaching of JAVA language," in 2010 International Conference on Educational and Information Technology (IEEE), 2010. [16] N. Funabikiy, Y. Korenaga, T. Nakanishi, and K. Watanabe, "An extension of fill-in-the-blank problem function in Java programming learning assistant system," in Humanitarian Technology Conference (R10-HTC), 2013 IEEE Region 10, 2013, pp. 85-90. [17] M. Chang, "Web-Based Multiplayer Online Role Playing Game (MORPG) for Assessing Students' Java Programming Knowledge and Skills," in Digital Game and Intelligent Toy Enhanced Learning (DIGITEL), 2010 Third IEEE International Conference., 2010, pp. 103107. [18] S. Tigrek and M. Obadat, "Teaching smartphones programming using (Android Java): Pedagogy and innovation," in Information Technology Based Higher Education and Training (ITHET), 2012 International Conference on, 2012, pp. 1-7. [19] S. Heckman, T. B. Horton, and M. Sherriff, "Teaching second-level Java and software engineering with Android," in Software Engineering Education and Training (CSEE&T), 2011 24th IEEE-CS Conference on, 2011, pp. 540-542. [20] E. Vrachnos and A. Jimoyiannis, "Design and Evaluation of a Webbased Dynamic Algorithm Visualization Environment for Novices," Procedia Computer Science, vol. 27, pp. 229-239, 2014. [21] C. Kazimoglu, M. Kiernan, L. Bacon, and L. MacKinnon, "Learning programming at the computational thinking level via digital game-play," Procedia Computer Science, vol. 9, pp. 522-531, 2012. [22] Y. Zhi, "Investigation and Implementation of Teaching Methods of Java Language," in Computer Science and Electronics Engineering (ICCSEE), 2012 International Conference on, 2012, pp. 482-485. [23] S. Zschaler, B. Demuth, and L. Schmitz, "Salespoint: A Java framework for teaching object-oriented software development," Science of Computer Programming, vol. 79, pp. 189-203, 2014. [24] M. Sivasakthi and R. Rajendran, "Learning difficulties of'object-oriented programming paradigm using Java': students' perspective," Indian Journal of Science & Technology, vol. 4, 2011. [25] P.-H. Tan, C.-Y. Ting, and S.-W. Ling, "Learning difficulties in programming courses: undergraduates' perspective and perception," in Computer Technology and Development, 2009. ICCTD'09. International Conference on, 2009, pp. 42-46. [26] Z. Jiang, Y. Zhao, Z. Qin, and X. Lin, "Coding Standard Based Object Oriented Programming Course Teaching Reform," in Computational and Information Sciences (ICCIS), 2013 Fifth International Conference on, 2013, pp. 1890-1892. [27] K. Dai, Y. Zhao, and R. Chen, "Research and Practice on Constructing the Course of Programming Language," in Computer and Information Technology (CIT), 2010 IEEE 10th International Conference on, 2010, pp. 2033-2038. [28] P. Yu and L. Yang, "Programming skills training in programming language courses," in Educational and Information Technology (ICEIT), 2010 International Conference on, 2010, pp. V3-14-V3-16. [29] W. Pullan, S. Drew, and S. Tucker, "An integrated approach to teaching introductory programming," in e-Learning and e-Technologies in Education (ICEEE), 2013 Second International Conference on, 2013, pp. 81-86.
[30] Han, Lee, and Lee, "The impact of a peer-learning agent based on pair programming in a programming course," Education, IEEE Transactions on, vol. 53, pp. 318-327, 2010. [31] J. Flieger and J. D. Palmer, "Supporting pair programming with JavaGrinder," Journal of Computing Sciences in Colleges, vol. 26, pp. 63-70, 2010. [32] P. J. Denning, "The field of programmers myth," Communications of the ACM, vol. 47, pp. 15-20, 2004. [33] Q. Mahmoud, M. A. Talib, Z. Maamar, E. Bataineh, and L. Jololian, "Revitalizing the introductory programming course," in GCC Conference and Exhibition (GCC), 2011 IEEE, 2011, pp. 545-548. [34] E. Dillon, M. Anderson, and M. Brown, "Comparing feature assistance between programming environments and their effect on novice programmers," Journal of Computing Sciences in Colleges, vol. 27, pp. 69-77, 2012. [35] K. K. Agarwal, A. Agarwal, and L. Fife, "Python and Visual Logic©: a good combination for CS0," Journal of Computing Sciences in Colleges, vol. 27, pp. 22-27, 2012. [36] N. Funabikiy, Y. Korenaga, Y. Matsushima, T. Nakanishi, and K. Watanabe, "An Online Fill-in-the-Blank Problem Function for Learning Reserved Words in Java Programming Education," in Advanced Information Networking and Applications Workshops (WAINA), 2012 26th International Conference on, 2012, pp. 375-380. [37] K. Seaborn and D. I. Fels, "Gamification in theory and action: A survey," International Journal of Human-Computer Studies, vol. 74, pp. 14-31, 2015. [38] A. F. Aparicio, F. L. G. Vela, J. L. G. Sánchez, and J. L. I. Montes, "Analysis and application of gamification," in Proceedings of the 13th International Conference on Interacción Persona-Ordenador, 2012, p. 17. [39] S. Nicholson, "A user-centered theoretical framework for meaningful gamification," Games+ Learning+ Society, vol. 8, 2012. [40] I. Blohm and J. M. Leimeister, "Gamification," Business & Information Systems Engineering, vol. 5, pp. 275-278, 2013. [41] M. Sakamoto, T. Nakajima, and T. Alexandrova, "Value-based design for gamifying daily activities," in Entertainment Computing-ICEC 2012, ed: Springer, 2012, pp. 421-424. [42] E. L. Deci, R. Koestner, and R. M. Ryan, "Extrinsic rewards and intrinsic motivation in education: Reconsidered once again," Review of educational research, vol. 71, pp. 1-27, 2001. [43] R. M. Ryan, J. Kuhl, and E. L. Deci, "Nature and autonomy: An organizational view of social and neurobiological aspects of selfregulation in behavior and development," Development and psychopathology, vol. 9, pp. 701-728, 1997. [44] R. R. Nunes, D. Pedrosa, B. Fonseca, H. Paredes, J. Cravino, L. Morgado, et al., "Enhancing students’ motivation to learn software engineering programming techniques: a collaborative and social interaction approach," in International Conference on Universal Access in Human-Computer Interaction, 2015, pp. 189-201. [45] K. Werbach and D. Hunter, For the win: How game thinking can revolutionize your business: Wharton Digital Press, 2012. [46] M. Sailer, J. U. Hense, S. K. Mayr, and H. Mandl, "How gamification motivates: An experimental study of the effects of specific game design elements on psychological need satisfaction," Computers in Human Behavior, vol. 69, pp. 371-380, 4// 2017. [47] B. Taspinar, W. Schmidt, and H. Schuhbauer, "Gamification in Education: A Board Game Approach to Knowledge Acquisition," Procedia Computer Science, vol. 99, pp. 101-116, // 2016. [48] F. L. Khaleel, "Recruitment and Job Search Application," Universiti Utara Malaysia, 2011.