Game-Based Coding Challenges to Foster Programming Practice (original) (raw)
Related papers
Fostering Programming Practice through Games
Information
Loss of motivation is one of the most prominent concerns in programming education as it negatively impacts time dedicated to practice, which is crucial for novice programmers. Of the distinct techniques introduced in the literature to engage students, gamification, is likely the most widely explored and fruitful. Game elements that intrinsically motivate students, such as graphical feedback and game-thinking, reveal more reliable long-term positive effects, but those involve significant development effort. This paper proposes a game-based assessment environment for programming challenges, built on top of a specialized framework, in which students develop a program to control the player, henceforth called Software Agent (SA). During the coding phase, students can resort to the graphical feedback demonstrating how the game unfolds to improve their programs and complete the proposed tasks. This environment also promotes competition through competitive evaluation and tournaments among S...
A holistic framework for the development of an educational game aiming to teach computer programming
Computer science is gradually changing, evolving and adapting according to the needs of each time period by incorporating the technological developments available. However, despite the occurring changes and the current progress in the domain, computer programming is still a vital chapter within computer science, and its teaching remains a difficult endeavour. On the other hand, students have changed the way with which they learn, interact with and search for knowledge. They spend significant amounts of their everyday lives from a very young age interacting with the computers by playing games. Thus, they are used to environments with impressive special effects and graphical interfaces where they have full control of the situation and interact with the environment's elements. Therefore, today's teachers are trying to connect computer programming learning with students' everyday usage of the computer, which does not include simple textual editors for programming lines of code with no other interaction functionalities. Hence, teachers face the challenge of incorporating environments that are similar to students' existing mentality and of creating tasks and assignments that can be executed within these environments and can provide students with the necessary programming knowledge and skills. A number of software solutions were developed towards facing the aforementioned difficulties. They can be classified into three main categories, namely educational programming environments, microworlds and educational games. Educational games used in computer programming courses are considered to present added value, due to their ability to motivate students towards actively participating in the learning process and to support high levels of interaction, group work and critical thinking. Thus, we have developed an educational game that aims to further enhance computer programming education by addressing occurring problems. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we collect documented difficulties identified in computer programming learning and teaching and study existing frameworks that have been proposed for the development of software solutions for computer programming courses and for the development of successful serious games that do not however focus on computer programming education. This information is thoroughly studied and refined and results in the proposed framework that could also be employed for the design and development of other future educational games focusing on computer programming education.
Learning Programming through Games and Contests: Overview, Characterisation and Discussion
Olympiads in Informatics, 2016
Learning of programming and, more generally, of computer science concepts is now reaching the public at large. It is not only reserved for people who studied informatics (computer science) or programming anymore. Teaching programming to schoolchildren presents many challenges: the big diversity in ability and aptitude levels; the big amount of different tools; the time-consuming nature of programming; and of course the difficulty to motivate schoolchildren to keep them busy with hard work. There are various platforms that offer to learn coding and programming, in particular game-based platforms, which are more and more popular. These latter exploits of the gamification process focused on increase in motivation and engagement of the learners. This paper reviews the main kinds of online platforms to learn programming and more general computer science concepts, and illustrates the review with concrete platforms examples.
Designing Educational Games for Computer Programming: A holistic Framework
Computer science is continuously evolving during the past decades. This has also brought forth new knowledge that should be incorporated and new learning strategies must be adopted for the successful teaching of all sub-domains. For example, computer programming is a vital knowledge area within computer science with constantly changing curriculum and its teaching remains a difficult endeavour. On the other hand, students start from a very early age to interact with computers through games and other entertaining multimedia software. Therefore, they seem to be keen on environments with impressive special effects and graphical interfaces where they interact with the environment's elements. In response, teachers are trying to connect computer programming learning with computer operations that students are familiar with, which does not include textual editors for programming lines of code with no other interaction. Educational games used in computer programming courses are considered to benefit learning, because they motivate students towards actively participating and interacting with the game's activities. Thus, we have developed an educational multiplayer game that aims to further enhance computer programming education by addressing occurring problems. This process, however, requires proper planning during the design of educational games, and thus the availability of adequate guidelines that include all characteristics that should be incorporated in such games. This paper aims to introduce and elaborate on a holistic framework that has been constructed as a guide towards the development of this game. To this end, we study existing frameworks that have been proposed for the design of educational games and document features currently supported by educational games that teach computer programming. We conclusively propose the framework we have constructed for the design of our game. This framework can be used for the design of other computer programming-specific educational games and extended for other educational domains.
CONNECTING TO PROGRAMMING THROUGH GAMES
International Journal of Scientific & Engineering Research Volume 9, Issue 6, J, 2018
~ Code combat is an innovative gamification approach that focuses on teaching and learning coding and programming by writing programs for the game code editor to control the game object. The purpose of this paper is to illustrate how code combat can be used to teach JavaScript programming language courses to young ones with little or no coding experience. Because programming is perceived by the vast majority of people as a difficult concept to learn, the paper provides a structure for integrating Code Combat sessions into class activity to better illustrate the programming concept. The main concepts of programming, coding, and the general syntax of Javascript programming language is what Code Combat will help impart to the student. This paper provides 10 basic steps in preparing a course outline that gives teachers and researchers ways to implement code combat in education curricula, breaking it into levels that meet the topics of the programming language JavaScript.
Development of a Serious Game to Assist in Teaching Programming in Introductory Courses
International Journal Of Engineering Research And Development, 2024
The increasing difficulty students face when learning programming logic has led to high rates of retention and dropout in introductory technology courses. To address this challenge, we developed a serious game designed to facilitate the learning of programming logic through an engaging, immersive experience. The game incorporates a non-linear learning approach, allowing students to progress at their own pace and revisit specific topics as needed. This flexibility supports students who may struggle with linear course structures, helping them to reinforce key concepts without feeling constrained. Additionally, the game employs a training and reuse model, enabling learners to continuously practice programming logic by returning to the game for further exercises. With cross-platform compatibility, the game can be compiled and deployed on various operating systems, making it accessible to a broad range of students. Preliminary results suggest that the game effectively aids students in mastering fundamental programming logic, potentially reducing dropout rates in technology courses and strengthening foundational skills.
A Video Game-Like Approach to Supporting Novices in Learning Programming
2021
In the education of introductory programming, people often adopt block-based visual programming languages such as Scratch and Blockly that allow programmers to construct programs by placing visual blocks. A previous study showed that a block-based language was more effective than a text-based language in introductory programming education. However, even with such block-based languages, it is still necessary for novices to learn programming in traditional ways, for example, by hearing lectures, reading textbooks, or watching tutorial videos. In this paper, we propose a video game-like approach to supporting novices in learning programming. We introduce two concepts into a block-based programming system: one is a staging mechanism that allows novices to gradually obtain more complex means of programming; the other is an assistant chatbot that helps novices to gain knowledge of programming. We implemented the system by applying our approach to turtle graphics. We present results of the experiment that we conducted to evaluate our approach.
A Game Playing System for Use in Computer Science Education
The MAPLE Game Playing System is a web application and website that allows students to design and program game playing agents using the Python programming language. The system provides a platform for assignments in introductory computer science courses and senior and graduate-level A.I. courses. The website allows users to upload, use, and share agents that play games such as the Prisoner's Dilemma, Stag Hunt, and Matching Pennies. In this paper, we discuss the features and functionality of the system and suggest possible assignments within A.I. or introductory programming courses.
Learning computer programming through game playing
2012
In this paper we present an approach for teaching and learning Computer Programming through Game playing. This activity is intended to complement traditional teaching of concepts. The focus is on building program comprehension rather than program generation. In playing the game, students improve their ability to read and understand a program written in a specific language and to follow the logic in a program. They build speed in comprehension, as is required in learning any language. To win the game, students have to play certain steps repeatedly, using different strategies, and with time constraints. This repetitiveness reinforces learning. Once they master the basic elements of a program, they will experience less frustration in coding solutions for more challenging problems. The preliminary results with students using this gaming activity are encouraging.
Algotaurus: an educational computer programming game for beginners
Interactive Learning Environments
An educational computer game is presented, used for beginner students to introduce some basic concepts of code execution and code writing. In this mini-language microworld game, a code should be written with which a robot can escape from a procedurally generated labyrinth. The game uses a simple language and utilizes a virtual environment, where code execution could be tracked easily. One essential advantage of the software is that after a very short training, students can start experimenting, and they can understand many basic properties of code writing and execution. Based on several pilot teaching classes in both primary schools and universities, the game is an efficient tool to introduce the bases of computer programming, which bases might be harder to demonstrate with other educational tools.