Just wanted to put up a quick post today going over the most important features an educational programming game should have. These are the aspects of the game most likely to be represented in the final design, are quite broad and general, and are shared among many games already in existence.
The first requirement for this game is the most apparent - the game must facilitate the learning of, or cover over the course of its play, the core ideas and concepts of the introductory programming course. All the concepts and information that were previously taught to the students via lecture slides should ideally be represented in some way, shape, or form in the game (for loops, conditionals, basic algorithm design, critical thinking, etc.). Lesson plans may change with the introduction of this new, gamified medium of learning, but those key topics should still be around.
Next, as in most games, there should be progression. This could be with regards to the levels, in the equipment that a player character obtains, etc. (this will all depend on the actual game of course), but there will be some development. As the student/player learns more and more about coding, his/her capabilities and skill will increase. The difficulty and challenge of the game must evolve along with the player; exposure to more thought provoking programming problems over the course of the game is guaranteed.
Rather than something that should be included in the game, I want to propose that there be a distinct lack of chance in a programming game. Many popular games have an interesting balance between skill and chance; random events can keep games interesting and fun, as there will always be a chance for someone to win out of nowhere (we've all experienced this). However, when it comes to education, students should always be able to concretely see the correlation between their existing knowledge, preparation efforts, and performance with their success or failure. A good educational game, competitive or otherwise, should 100% of the time reward players who have a greater understanding of the subject material. Now, I am not completely against random elements in an educational game (e.g. which problem is given to a student is chosen from a question bank at random), but when it comes to performance, results, and their corresponding evaluations, influential nondeterministic elements should be absent.
Finally, as with almost all games, a programming game should provide immediate feedback. It is often the case in the classroom that coding assignments take some time to grade, which is suboptimal when it comes to crystallizing a student's understanding of a topic. In games, the immediate in-game responses to whatever the player is doing helps to illuminate the correct path. The ideal programming game should be based in an environment which can very quickly provide feedback on the student's solution to a programming problem.
That's all for now! The core aspects listed above may not be comprehensive - I will come back and update if need be.
Peace,
KR
The first requirement for this game is the most apparent - the game must facilitate the learning of, or cover over the course of its play, the core ideas and concepts of the introductory programming course. All the concepts and information that were previously taught to the students via lecture slides should ideally be represented in some way, shape, or form in the game (for loops, conditionals, basic algorithm design, critical thinking, etc.). Lesson plans may change with the introduction of this new, gamified medium of learning, but those key topics should still be around.
Next, as in most games, there should be progression. This could be with regards to the levels, in the equipment that a player character obtains, etc. (this will all depend on the actual game of course), but there will be some development. As the student/player learns more and more about coding, his/her capabilities and skill will increase. The difficulty and challenge of the game must evolve along with the player; exposure to more thought provoking programming problems over the course of the game is guaranteed.
Rather than something that should be included in the game, I want to propose that there be a distinct lack of chance in a programming game. Many popular games have an interesting balance between skill and chance; random events can keep games interesting and fun, as there will always be a chance for someone to win out of nowhere (we've all experienced this). However, when it comes to education, students should always be able to concretely see the correlation between their existing knowledge, preparation efforts, and performance with their success or failure. A good educational game, competitive or otherwise, should 100% of the time reward players who have a greater understanding of the subject material. Now, I am not completely against random elements in an educational game (e.g. which problem is given to a student is chosen from a question bank at random), but when it comes to performance, results, and their corresponding evaluations, influential nondeterministic elements should be absent.
Finally, as with almost all games, a programming game should provide immediate feedback. It is often the case in the classroom that coding assignments take some time to grade, which is suboptimal when it comes to crystallizing a student's understanding of a topic. In games, the immediate in-game responses to whatever the player is doing helps to illuminate the correct path. The ideal programming game should be based in an environment which can very quickly provide feedback on the student's solution to a programming problem.
That's all for now! The core aspects listed above may not be comprehensive - I will come back and update if need be.
Peace,
KR
No comments:
Post a Comment