Towards a new Massive Multiplayer Online Role Playing Game for introductory programming Christos Malliarakis
Maya Satratzemi
Stelios Xinogalos
Dept. of Applied Informatics University of Macedonia 156 Egnatia Street, Thessaloniki, Greece +30 2310 891820
Dept. of Applied Informatics University of Macedonia 156 Egnatia Street, Thessaloniki, Greece +30 2310 891897
Dept. of Applied Informatics University of Macedonia 156 Egnatia Street, Thessaloniki, Greece +30 2310 891820
[email protected]
[email protected]
[email protected]
Many studies have researched computer programming education and have come to the conclusion that it continues to be a problematic process ([12], [23]). Technological support to address these issues involves the usage of educational programming environments (e.g. BlueJ [11], JGrasp [8]). However, even though these environments proved facilitating in tasks of execution and visualization mechanisms, they failed to address other computer programming problems, such as the lack of motivation [10] and the inability to properly portray in a comprehensible way the complex computer programming concepts [9]. Towards solving these issues, a new generation of environments was brought forth, called microworlds (e.g. Alice [4], objectKarel [27], Greenfoot [10] etc). They were able to provide better visualization of concepts by introducing the protagonist, i.e. a character that executes the users’ commands step-by-step by moving across a simulated world and performing tasks [9]. Nonetheless, students, and especially novices, but also teachers, continue to face significant problems in computer programming courses, according to relevant studies ([12], [23]). The lack of motivation and lack of proper facilitating methods that will guide students through understanding complex concepts are only two of the most evident problems that have yet to be successfully overcome and thus prevent successful computer programming education [21]. As an example, the lack of facilitating methods that alleviate the existing complexity is considered to prevent students from properly deciphering the mistakes indicated by the compilers or understanding how to write lines of code in the complex authoring editors. Additionally, the step by step execution helps partial recognition of the corresponding code, but it does not provide an overall overview of the program's structure until the majority of the code has already been written. So, students follow a sequential code execution path without fully understanding the ultimate goal [25].
ABSTRACT Successful computer programming education is facing significant problems even nowadays for both students and teachers. To this end, the specificities of those difficulties and the corresponding causes continue to be an ongoing topic of research. According to relevant case studies, these relate to the complex concepts of computer programming as well as the lack of motivation by students to achieve the given goals. On the other hand, the emerging field of Games Based Learning is gradually delivering games that are applied in a series of educational contexts. In this paper, we aim to initially investigate the educational games developed for and used in the computer programming domain and review to which level they address the aforementioned difficulties. Related work includes a number of games that have been developed towards this goal. However, even though they seem promising examples, they lack features that would allow them to successfully underpin computer programming learning by facing the majority of the identified problems. To this end, we propose a new, advanced Massively Multiplayer Online Role-Playing Game (MMORPG) that includes the facilitating and positive features identified in existing solutions and incorporates missing elements that will bring forth a new generation of educational games for introductory computer programming.
Categories and Subject Descriptors K.3.2 [Computers and Education]: Computer and Information Science Education
General Terms Experimentation, Human Factors, Languages, Theory.
Keywords
Subsequently, a need was indicated to use other technologies that would generate interest by students and would allow teachers to create engaging scenarios with facilitating techniques. To this end, educational games have started gaining teachers’ attention and used in computer programming, since they seem to successfully motivate students and can guide them in their learning process [7]. This is because students are already familiar with games and how they operate, since they spend significant amount of their every day lives playing and enjoying the interactivity they provide as well as visualization of the given tasks they have to complete. Additionally, multiplayer online role playing games are considered to be more efficient in domain-specific education, due
Introductory programming, Massive Multiplayer Online Role Playing Game, educational games
1. INTRODUCTION Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. BCI ‘13, September 19-21, 2013, Thessaloniki, Greece. Copyright 2013 ACM 978-1-4503-1851-8/13/09 ...$15.00. 156
to their ability to fully immerse students in the game world and add the competitive element in the learning process [6].
that have been trapped in the catacombs. This way, students can better learn how to declare different types of variables and learn their differences as well as practice in depth with if statements and loops. Within the game, the answers given by the students automatically generate executable code of a micro-language. Catacombs is a three-dimensional, multiplayer game where players gather scores with experience points as they successfully navigate across missions. The game also provides facilitating mechanisms, where explanatory messages appear periodically to help the hero when needed.
Our objective is to initially study educational games constructed for and currently applied in computer programming education and to deduce their advantages and disadvantages. Thereafter, we propose a new Massive Multiplayer Online Role Playing Game (MMORPG) that will incorporate the positive features already addressed by relevant work and also will be supplemented with functionalities that support problems that have yet to be solved. This paper provides an initial introduction of the game that is being developed. In Section 2, we study and briefly elaborate on related work, focusing on educational games that have been constructed and are being used in computer programming courses. This section concludes with a categorized list that provides an overall overview of each game’s features and an evaluation of the identified features. Section 3 introduces our proposed game. We initially describe the game’s purpose, the methodology followed during its design and the scenario that will drive the majority of future tasks for computer programming education, focusing on introductory programming elements. Finally, conclusions drawn from the work done so far are provided in Section 4.
Saving Sera During the Saving Sera game ([2], [1]), the player is trying to save a princess named Sera, who has been kidnapped by a monster called Gargamel, on her 16th birthday. Students are called to complete a number of quests so that they can finally achieve the ultimate goal. During these quests, they either have to complete proper lines of code missing in various exercises, or they are required to map given lines of code to the corresponding locations of the program. Only by successfully completing these tasks can they move forward to the plot of the game. During the game, students use a specific micro-language, with which they learn computer programming units like recursion and if statements. Saving Sera is a three-dimensional exploratory game that allows students' support with explanatory messages for the hero. The game has been constructed with the RPGMaker platform.
2. RELATED WORK This section describes the research done for the identification and the documentation of the most well known educational games in computer programming. We provide information regarding each game’s history and we illustrate its scenario and features. The games studied are divided into two main categories, depending on their learning purpose, i.e. educational games that focus on teaching a specific programming learning unit, and educational games that aim to teach a number of learning units. Moreover, we conclude the section with an evaluation of the related work, by depicting positive and negative elements that successfully address or hinder introductory computer programming, taking into consideration the problems that this domain faces, as aforementioned.
EleMental: The Recurrence According to the plot of the game, Ele and Cera are two avatars that help students during the game by taking on the role of a mentor [3]. Students are shortly introduced to the recursion unit of learning and they are thereafter required to apply the DepthFirst Search (DFS) algorithm, so that they can move the hero across a fantastical two-dimensional tree and thus complete three missions. Once the code is written, Ele crosses the tree by simulating the code, while Cera explains exactly what the code is doing at a specific time. This game was created to allow students to familiarize themselves with recursion and the DFS algorithm in a fun, visualized manner, and learn how to create programs with the C# programming language. This is a three-dimensional game that was constructed using the DarkWynter game engine.
2.1 Educational games for Computer Programming The games used for teaching and learning computer programming have been ranked in two categories, according to the pedagogical goals they address. The first category describes the games that aim to teach a specific computer programming unit, while the second category includes games that cover multiple pedagogical goals, and thus we label them as holistic.
Prog & Play Prog&Play [16] is a web-based strategy game, where users interact with each other. Students also create their heroes by programming them so that they will prevail in the game by forming alliances. Students can choose which programming language they want to use amongst Ada, C, Java, OCaml, Scratch and Compalgo. Prog&Play is a multiplayer game that has been constructed based on an open source strategic game called Kernel Panic.
2.1.1 Educational games aiming to teach a specific unit of learning The current sub-section will provide comprehensive information regarding the eight most well known and commonly used educational games that focus on a particular unit of learning in the computer programming domain.
Wu’s Castle Wu’s Castle [5] is a role playing game where the user takes on the form of a wizard that has the ability to control an army of snowmen. The game starts with introducing the story and the game interface. Thereafter, the user participates in the plot by recognizing logical mistakes in lines of code. Wu’s Castle aims to learn the units of learning regarding loops and arrays in an interactive manner. The two ways students can interact with the game elements are by managing arrays through changing the
Catacombs The Catacombs game ([2],[1]) aims for students to familiarize themselves with activities such as variables declaration and the usage of simple as well as nested if statements and loops. The player (who is represented as a wizard in the game) answers multiple choice questions trying to complete the code that will help him execute the given missions and thus release two children 157
parameters within the loops, and by moving the characters of the game through executing nested loops. The problem solving and the interaction in the game are realized with the usage of the C++ programming language. Wu’s Castle is a two-dimensional role playing game constructed with the RPGMaker XP platform.
M.U.P.P.E.T.S. The scenario used in the M.U.P.P.E.T.S. [20] game is inspired by Robocode. Students are called to create a robot that will have to fight another robot in a virtual arena. M.U.P.P.E.T.S. is a webbased, collaborative three-dimensional game that aims to teach students how to construct objects and also familiarize themselves with the basic concepts of object-oriented learning using the Java programming language. In the game, users interact with the objects they create and write as well as compile their code in the embedded development environment and commands console.
Robozzle Robozzle allows the construction of computer programs through a set of predefined commands. Based on the game’s scenario, each program will have to execute a mission in a grid and tiles environment. This gives users the ability to develop their own functions, especially for needed repetitive moments of the hero [14].
PlayLogo3D In the scenario of the PlayLogo 3D game [19], there is a contest between pilot robots that takes place every year in the spaceship X-15, which is located in a constellation called Andromeda. The game aspires to teach students the very basic concepts of structured computer programming. The users of the PlayLogo 3D game program their heroes (protagonist creation and navigation on the "galaxy) in a three-dimensional world by writing code in the LOGO programming language. This is a role playing game that allows interaction amongst multiple players.
LightBot LightBot is a puzzle game where the players will have to navigate a robot through a grid environment, by lighting specific tiles. More specifically, the robot has to move through the grid by following each level’s tasks in order to light all blue tiles. These programs are constructed by using a set of predefined commands. However, each function, including main, can include a limited number of commands. Lightbot is a web-based, free game that is available in various levels of difficulty: basic, recursive, special etc [22].
Gidget In this particular game there is a robot called Gidget, who has had a part of his software destroyed and thus it cannot fulfil its goals [13]. Students are called to help Gidget, either by completing missing lines of code, or by fixing existing lines of code that have been written wrong. During the game, users receive constant feedback regarding their progress. The game aims to teach students how to design and analyze basic algorithms. The game's users can write programs using a simplified language that was created especially for the game. This is a web-based game based on the HTML5 and Javascript programming language and the jQuery library.
TALENT Another game of this category is called TALENT [15]. TALENT is an adaptable educational game based on a micro-language that supports algorithmic if-statements (if-then-else) and loops (while, repeat). A computer program is developed with the help of a virtual editor and a drag & drop technique in order to avoid syntax errors. Players are required to complete a number of quests provided by the game through a robot in the role of an archeologist. The game offers components that develop the game’s model and create an educational agent. The agent takes on the role of a mentor and motivator when the student requires assistance, and also suggests the next mission. Through this type of exploration of the world, the player-archeologist tries to collect objects that he will later display at his own exhibition hall at a museum.
2.2 Related work synopsis According to this review, all solutions depict a number of features that address the problems typically encountered in computer programming. These features include the provision of attractive graphical interfaces and the visual representation of the programming tasks. Also, all games are interactive and provide interesting scenarios that keep students’ interest while executing tasks.
2.1.2 Holistic educational games This sub-section will demonstrate four interesting educational games that teach students a number of computer programming elements. These games are examples of environments that provide a broader knowledge base than the ones we reviewed in the previous sub-section.
These scenarios also increase their social skills and encourage often collaboration. Additionally, all games seem to successfully teach the computer programming elements they are focusing on. Also, each game uses a distinct programming language for teaching, while other games like Catacombs, Saving Sera and Gidget use micro-languages to support students’ understanding the logic behind the programming elements. These microlanguages focus more on introducing novice students to the world of computer programming.
Robocode In the game called Robocode [18], students try to program a robot that will fight another robot in a virtual arena. The programming concepts that students learn while trying to create a well-trained robot are the basic commands of structured programming, but also the main structures of object-oriented programming (e.g. inheritance, polymorphism etc). The created robot inherits some main methods, which students can extend and create their own, regarding the robot's behaviour in the arena. Robocode aims to teach the Java programming language, and it is a two-dimensional environment comprised of a computer programming editor that creates the robots and a virtual arena.
Some programming languages used are C# and Logo, whereas a few examples of games use the Java programming language, which could be considered the language in which the majority of computer programs are built in. Only the Prog&Play, Robocode and M.U.P.P.E.T.S. games use Java for teaching. Based on our review, Robocode and M.U.P.P.E.T.S. are considered the most holistic examples of educational games. However, Robocode does
158
not provide a compiler, which is a very important feature for successful computer programming teaching.
Knowledge is shared amongst people, tools and other objects.
In fact, M.U.P.P.E.T.S. is the only educational game that has an integrated compiler that can compile the written programs and depict any mistakes. Apart from the inclusion of a compiler, a thorough review of all educational games indicates that M.U.P.P.E.T.S. provides the majority of positive features. For example, students can be taught multiple programming elements instead of a specific one, they learn to use the Java language, which has long term added value since they will most likely be required to re-use it in later programming courses, and they can interact with other students through a visually stimulating graphical environment. However, M.U.P.P.E.T.S. does not include explanatory messages that assist students in understanding the theory while playing, a very important feature that is supported by some games, like Catacombs, Saving Sera and EleMental. Additionally, M.U.P.P.E.T.S. does not provide a variety of scenarios for students to be engaged in while learning. This feature would successfully supply the game with abundant practice exercises that would help them adequately engage in tasks that will help them understand the majority of the learning materials.
Meanings arise from the interpretation of knowledge and related activities, and thus, multiple perspectives are identified.
The construction of meanings is dictated by the problems, questions and authentic tasks.
Taking the above into consideration, the game will follow the methodology shown in Figure 1.
3. CMX GAME INTRODUCTION This section will introduce the game we are proposing, called CMX. More specifically, we will elaborate on the methodology that is followed within the game we are proposing. This methodology derives mainly based on the literature review we have carried out on related work and aims to address the gaps identified and also include the promising features some of the aforementioned games support. Additionally, we provide information regarding the game, such as an initial prototype of its architecture and a few mock up illustrations of its functionalities.
Figure 1. Methodology steps More specifically, the game always starts with a specific action. This action is attractive enough that it highlights students’ desire to improve by participating on the action’s given steps. Through this motivation process, students discover knowledge within the game. This is realized through a series of tasks that provide segments of computer programming information. These tasks are completed through collaborative work. This way, the game will not only support students gaining knowledge, but also them developing various skills (e.g. group work, task allocation, organization etc) that will benefit them in their future professional lives. The constant collaborative undertaking of these tasks will lead to learning of the taught elements. This learning will then be evaluated with a number of assessment measures established by teachers. If the evaluation results are above the set average, then it is considered that the targeted learning outcomes are achieved.
Our game will focus on introductory computer programming, since novice students in computer programming courses are the ones that face the most difficulty in efficiently comprehending the theory. Our game is directed to secondary school students between ages of 13-17 that are coming into contact for the first time with computer programming. It is important to provide proper education from the beginning of students’ involvement with computer programming so that they are correctly equipped with the most basic domain knowledge as they thereafter learn more complex programming concepts. During the next sub-sections, we will describe the methodology followed during our decision making for developing the game’s architecture and scenario. Moreover, we will present in detail the scenario behind our game and present a few of the supporting features.
For the successful navigation through the methodology showed, we have endeavoured to take into account all parties affected during the game experience and try to best support them in achieving their individual goals. For example, students aim to play to win, get distinguished and in parallel to learn programming by enjoying the process. The game’s goal is for students to achieve these aims and to be able to communicate and collaborate with each other in an engaging manner towards understanding computer programming concepts. To this end, in the initial version of the game a series of scenarios have been produced for each computer programming unit of learning.
3.1 Our Methodology The application of web-based multiplayer educational games in education is directly connected with the theory of constructivism, according to which learning brings change in a meaning that is created based on already gained knowledge [17]. The relevant theory that must be taken into consideration during games design states as follows [26]:
All knowledge is constructed instead of delivered.
Knowledge and the corresponding meanings derive from activities.
However, the parties affected by the game are not necessarily only the students. Unlike the aforementioned games, teachers also have a very active role in CMX. More specifically, teachers will be able to configure parts of the game according to the learning objectives they want to address in each lesson. Moreover, they can set the goals that will determine the winner gamer and will manage the 159
game by setting their own rules to ensure smooth transactions. Teachers will also regulate the game so that it will serve as supplementary software during computer programming teaching, in accordance to the corresponding taught unit of learning.
actually starting to play and learn how they can interact with the game’s elements. When the game starts, the players choose their team. In each “world” there are two stage areas. In the first stage area, the players communicate and interact with their assigned Sensei. Interaction between the two teams is prohibited within this stage, in which the Sensei trains his designated player.
Lastly, the game significantly affects the delivered computer programming knowledge and skills. Although these are concepts and not individuals, they should be a part of the methodology followed during the design and development of an educational game. A visual representation of these stakeholders’ goals is provided in Figure 2, called “CMX Programming Prism”.
Figure 2 CMX Programming Prism Figure 3 Screenshot of the initial world
As it is shown in the above Figure, each stakeholder has a different view of the way the game will be used for its corresponding goals’ achievement. The game aims to deliver a number of skills to students by enabling easy communication and tasks’ execution for goals achievement, while programming knowledge (e.g. loops, if statements, functions etc) will be delivered during playing.
During this training, players learn about the basic structures of computer programming, the logical thinking process behind them as well as their syntax. The game includes three categories of Senseis, namely basic Sensei, Iron Sensei and Gold Sensei. During training players initially are assigned with a Basic Sensei, where interactive dialogue provides information regarding various programming aspects. Consequently, the Basic Senseis evaluate the players by asking them multiple choice questions and giving them weapons and spells when they answer correctly. Once the initial familiarization with programming elements is finalized, the players are directed to the Iron Sensei. During the 2nd training phase, interactive dialogue with more advanced programming materials leads to the players’ gaining knowledge and being evaluated by mapping their answers to given questions using drag & drop mechanisms. With every right mapping, the Iron Senseis provide the players with more powerful weapons than those of the Basic Sensei. Finally, each player meets with an assigned Gold Sensei, who challenges the player to write his/her own lines of code. In turn, when players write correct code, the Gold Sensei equips them with a number of highly effective weapons for the game.
3.2 Our Game CMX is an educational game that aims to introduce students to computer programming, to help them get acquainted with the way computer programs are structured and also allow them to engage in algorithmic logic. Figure 3 provides a draft visualization of the virtual world the player is presented with during the initial entry in the game. According to the game’s scenario, there are two opposite teams, named the “hackers” and the “crackers” correspondingly. The hackers are paid employees of a toxic waste factory while crackers are activists that are trying to invade the factory’s system and interfere in their business. The game includes a number of Senseis, which are special characters in the storyline that are trying to teach the players how to engage in computer programming as well as provide helpful hints. If the players manage to solve the required tasks, then they collect a series of secret weapons, power with points as well as spells they can use inside the factory when they are faced against the opposite team.
This training process we have included is an innovative component that we deem necessary to exist in educational games. This way, players are motivated to not only read about the programming elements, but understand them correctly in order to be competitive enough in the game, since the more weapons they
Along with the game, we have developed a website, which contains various tutorials for the students to overview. This way, they can navigate through the game’s functionalities before 160
get, i.e. the more questions they answer correctly, the more chances they have at winning.
for novice students, it is important that students learn how to write lines of codes on their own. To this end, the game will include a code editor, as shown in Figure 5.
It should be noted that some tasks during training require the team’s collaboration for their successful execution. For example, the group cannot proceed to the Iron Senseis’ leader if all the players have not gained weapons from their Basic Sensei. Thus, teamwork is already promoted even before they start playing the game. Once the Senseis certify that the players have understood the taught materials, they provide them with multiple-choice questions that they are required to answer. If the players answer correctly, they are provided with secret weapons they can use later. During the game, players are also given experience points that they gather as they play. The players’ status is presented through a bar that shows their remaining energy and an additional bar that shows how many magic spells they can still use within the game. As soon as the players’ interaction with the Senseis is complete, they are transferred to the second stage area, where the Arena is located. Within this environment, the players fight each other using their gained weapons, as well as the experience points they have collected from previous battles. The game’s weapons are similar to those that the students have already been accustomed to from other commercial MMORPGs, while magic spells and potions provide an added sense of entertainment and game authenticity to the learning process. CMX has been developed so as to include elements that are interesting to students and as similar to other games they typically play as possible.
Figure 5 Code editor mock up The game also includes a Java compiler, which points out errors to students and thus contributes to scaffolding their learning process. Special emphasis has been given to the support of collaboration between students, since many tasks require group work to be completed successfully. For example, synchronous communication is enabled amongst students through a chat tool, as shown in Figure 6.
The players start to come in contact with the Java programming language while they interact with their assigned Sensei. More specifically, during the tasks, students are requested to answer a series of multiple choice questions as well as fill out lines of code. The latter is done through drag & drop commands. This way, the interface becomes more attractive to students that are coming in contact with programming for the first time by alleviating the added effort of writing lines of code, and improves their critical thinking skills by allowing them to decide which lines of code correspond to the given task. A mock up view of how this process is developed is shown in Figure 4.
Figure 6 Chat tool that assists communication CMX is a holistic game that aims to teach students computer programming by not only focusing on a specific structure but elaborating on a variety of essential programming elements. Apart from students, the teacher can play another main part in the teaching process with CMX, too. Teachers are provided with a number of moderating rights within the gaming environment, which allow them to manage students’ behaviours and performances while learning by playing. A representative
Figure 4 Interaction with the game with drag & drop mock up However, the game also provides the ability to write computer programs in a more traditional way, using a code editor. This is essential because, even though drag & drop commands are helpful 161
actively and, by association, to learn how to program more effectively.
functionality of the teacher is the ability to define the behavior of each Sensei. This way, teachers simulate their own facilitating role through these mentors, and thus assign them with hints to provide students when needed as well as explanatory messages that will assist any possible confusion. Teachers will determine how intelligent and complex the guidelines they will give to the students via the Senseis will be. These guidelines will be designed by the teachers according to the learning objectives, assigned to the Senseis and programmed so that they will be delivered to the students when needed (e.g. when they answer a specific question wrong, when they map a line of code or command to a wrong position etc). Moreover, teachers can change the graphical environment of the game as they see fit. This can have significant benefits as each class has different specificities, such as different tastes. To this end, they are provided with a panel that allows them to configure all features that could lead to a new, adaptable environment. Thus, the same game can be reset to each class’s preferences and improve the otherwise lack of interest usually shown by the students.
The last point made is very important, as more than 10 million people dedicate multiple hours daily within virtual worlds, collaborating with virtual characters and executing virtual actions [24]. As an example that was also mentioned earlier, based on stats released by Blizzard, the World of Warcraft game documents more than 11 million players while 40 thousand new players get enrolled every week, dedicating one to twelve hours a day to the game.
CMX's allowed interactions and supported tasks follow the constructivist theory presented, allowing students to create knowledge by actively trying to solve given problems. This way, students can generate meaningful information (e.g. the code to be written, the answer to a multiple choice question, the correct mapping of code etc) while they interact with the game's elements (e.g. Senseis, activities, avatars) and execute authentic tasks. More specifically, the features our proposed game addresses that provide added value compared to the related work include:
It is a holistic game. Although the game is divided into levels and sublevels, it is designed so that it can be used for all programming teaching sections.
Adaptability of the game interface by teachers. Additionally, teachers can design the game according to their lesson to the class, set the rules of the game, set the goals and finally, decide for the reward of the winners.
Strong emphasis to role playing, which causes students to immerse themselves completely in the game, and thus completing their tasks in a less obligatory manner.
The game has all the aspects of a multiplayer game so that players should collaborate in order to achieve the goals and win the game. There is an embedded chat tool, so that players can communicate with each other and be better organized into their teams.
The players have a variety of ways they can interact with code programming within the game, according to the level of their programming knowledge. They can either answer to simple multiple choice questions, or drag and drop tiles to complete the program correctly, or write a program to the editor.
The game includes a lot of tutorials with hints and tips that can help the students achieve the goals and simultaneously teach them the programming aspects they need to know.
The scenarios provided by the game are infinite and cover a variety of units of learning instead of a single one.
The game’s logic “The best gamer is the best programmer” underpins their motivation to play more
The fact that this is a MMORPG removes students’ usual initial reluctance to try new and foreign to them educational software. The logic of this game is similar to games the majority of students are already familiar with (e.g. War of Warcraft etc), so it is easier for them to find this new technology enjoyable. Additionally, this reduced the effort it takes for teachers to train students in a novel, complex system, and the time it takes for students to learn all the specificities of such a technology (e.g. menus, console, action buttons, interface layers etc).
While World of Warcraft is an entertainment game all together, there are examples of educational MMORPGs, such as the Second Life world. Second Life is a very well known game that provides an attractive virtual world with multiple educational scenarios and interesting features that attract a large audience, such as many entities, streaming video and sound, freedom to edit the hero according to one’s personal preferences etc. Thus, CMX intends to create a world most students are already accustomed to and use it in educational settings for successful computer programming teaching and learning.
4. CONCLUSIONS Computer programming education, and in particular during introductory courses, requires the integration of technologies that will properly address the majority of existing difficulties faced by both students and teachers. Current solutions such as educational programming environments and microworlds have succeeded in providing better visualization of results and simulation of the lines of code. However, the still present lack of interest and difficulty in understanding complex concepts by students as well as the inability of teachers to support scenarios with tasks through these environments that would help students understand the taught materials made way for the usage of educational games in computer programming. Such games were studied in this paper and their features were identified. During this research, we did not depict a single solution that successfully addresses the majority of computer programming related problems. To this end, we proposed a massive MMORPG that will incorporate features of existing games that have been acknowledged as valuable to computer programming (e.g. interaction, collaboration, Java language, attractive graphical environment), as well as features that have not yet been properly included (e.g. multiple scenarios, explanatory messages, multiple and easy to use graphical interface facilities for novices, teachers’ guidance and moderation, etc). We provided information regarding the methodology we followed during the outline design of the game as well as the concepts taken into consideration (e.g. students’ and teachers’ aims, knowledge and skills to be delivered 162
etc). Finally, we elaborated on a few of the game’s features by illustrating mock ups of its screens and showing how students will interact with the environment to write code more effectively (e.g. by drag & drop functionalities or editor). As future work, we will continue to configure and develop the game according to its goals and constantly improve it based on the latest developments in the field. Moreover, we will monitor and analyze the impact of the CMX game over the players/students and teachers.
Conference on International Computing Education Research (ICER), August 8-9, Providence, Rhode Island, USA, p. 109116. [14] Li, F.W.B. and Watson, C. (2011). Game-based concept visualization for learning programming, Proceedings of the third international ACM workshop on Multimedia technologies for distance learning, ), p. 37-42, December 0101, 2011, Scottsdale, Arizona, USA
5. REFERENCES
[15] Maragos, K., Grigoriadou, M. (2011). Exploiting TALENT as a Tool for Teaching and Learning, The International Journal of Learning, Volume 18, Issue 1, pp.431-440
[1] Barnes, T., Chaffin, A., Powell, E., Lipford, H. (2008). Game2Learn: Improving the motivation of CS1 students. Proceedings of the 3rd international conference on Game development in computer science education, p.1-5, February 27-March 03, 2008, Miami, Florida
[16] Muratet, M., Torguet, P., Viallet, F. and Jessel, J.P. (2010). "Experimental feedback on Prog&Play, a serious game for programming practice", Eurographics, p. 1-8 [17] Newby, T. J., Stepich, D. A., Lehman, J. D. and Russell, J. D. (1996). Instructional technology for teaching and learning: designing instruction, integrating computers, and using media, NJ: Prentice Hall.
[2] Barnes, T., Richter, H., Chaffin, A., Godwin, A., Powell, E., Ralph, T., Matthews, P. and Jordan, H. (2007). The Role of Feedback in Game2Learn, CHI 2007, p.1-5. [3] Chaffin, A. Doran, K., Hicks, D. and Barnes, T. (2009). Experimental evaluation of teaching recursion in a video game. In Proc. ACM SIGGRAPH Symposium on Video Games, Sandbox '09, p. 79-86
[18] O'Kelly, J. and Gibson, P. (2006). RoboCode & problembased learning: A non-prescriptive approach to teaching programming. ACM SIGCSE Bulletin, Proceedings of the 11th Annual SIGCSE Conference Bonakdarian, 38, 3 (June 2006), p. 217-221. [19] Paliokas, I., Arapidis, C. and Mpimpitsos, M. (2011). PlayLOGO 3D: A 3D interactive video game for early programming education. Third International Conference on Games and Virtual Worlds for Serious Applications, p. 2431.
[4] Cooper, S., Dann, W., and Pausch, R. (2003). Teaching Objects-first in Introductory Computer Science. ACM SIGCSE Bulletin 35(1), 191-195. [5] Eagle, M., and Barnes, Τ. (2009). Experimental evaluation of an educational game for improved learning in introductory computing. SIGCSE Bull. 41, 1 (March 2009), p. 321-325. [6] Garzotto, F. (2007). Investigating the Educational Effectiveness of Multiplayer Online Games for Children, Proceedings of the 6th international conference on Interaction design and children, June 06-08, 2007, Aalborg, Denmark. Doi: 10.1145/1297277.1297284
[20] Phelps, A, Bierre, K, and Parks, D. (2003). MUPPETS: multi-user programming pedagogy for enhancing traditional study, Proceeding of the 4th conference on Information technology education , October 2003, Lafayette, Indiana, USA, p. 100-105 [21] Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M. and Paterson, J. (2007). A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin, 39(4):204–223. [22] Piteira, M., Haddad, S. (2011). Innovate in Your Program Computer Class: An approach based on a serious game. OSDOC - Open Source and Design of Communication Workshop [23] Ragonis, N. and Ben-Ari, M. (2005). A long-Term Investigation of the Comprehension by Novices, Computer Science Education, Vol. 15, No. 3, 203-221.
[7] Gee J.P., (2006). Why game studies now? Video games: A new art form, From Games and Culture, Volume 1 Number 1, pp. 58-61 [8] Hendrix, T.D., Cross, J.H., and Barowski, L.A. (2004). An extensible framework for providing dynamic data structure visualizations in a lightweight IDE. ACM SIGCSE Bulletin, 36(1), 387-391. [9] Henriksen, P., and Kölling, M. (2004). Greenfoot: Combining Object Visualization with Interaction. In Proceedings companion of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA ’04), Vancouver, BC, Canada, 73-82.
[24] Shanahan, J. (2009) Students Create Game-based Online Learning Environment that Teaches Java Programing, ACMSE.
[10] Kölling, M. (2010). The greenfoot programming environment. Trans. Comput. Educ., 10:14:1--14:21.
[25] Ramalingam, V., LaBelle, D., and Wiedenbeck., S. (2004). Self-efficacy and mental models in learning to program. In ACM SIGCSE Bulletin, volume 36, pages 171–175. ACM. [26] Uden, L. and Beaumont, C. (2006). Technology and Problem - Based Learning. Hershey, PA. IGI Publishing.
[11] Kölling, M., Quig, B., Patterson, A. and Rosenberg, J. (2003). The BlueJ system and its pedagogy. In Journal of Computer Science Education, Special issue on Learning and Teaching Object Technology, Vol 13, No 4, 249-268.
[27] Xinogalos, S., Satratzemi, M., and Dagdilelis, V. (2006). An introduction to object- oriented programming with a didactic microworld: objectKarel, Computers and Education, 47(2), 148-171.
[12] Lahtinen, E., Ala-Mutka, K. and Jarvinen, H. (2005). A Study of Difficulties of Novice Programmers. In: Innovation and Technology in Computer Science Education, p. 14–18. [13] Lee, M.J. and Ko, A.J. (2011). Personifying Programming Tool Feedback Improves Novice Programmers’ Learning,
163