The gamification of programming
During my ongoing literature review I often discover interesting facts about things I’ve never thought about. Sometimes I can connect these facts with my own observations: The result is mostly a completely new idea why things are as they are. Maybe these ideas are new to you, too. Therefore I’ll share my new science based knowledge with you!
This week: This time, I think about the way how Human Resource Machine teaches players the basics of programming.
Algorithms and loops are the key concepts of programming as they provide methods to systematically carry out operations until a certain condition is reached. However, correctly developing algorithms and repeating them with loops in order to carry out a given task is often hard to understand and requires a lot of practice. In order to successfully transform a task into an algorithm, a user has to analyze the task and segment it into single steps that subsequently can be sequenced as an algorithm.
Recently, I played the computer game Human Resource Machine that challenges a player with small tasks that can be solved by programming a little office worker. For instance, one puzzle challenges the player to grab every numbered block from the inbox and to put it into the outbox. However, if a number is negative, the player must remove its negative sign first. This puzzle requires the player to grab a block from the inbox, to check its sign and, dependent on the result, put it into the outbox or change its sign before putting it into the outbox. For this purpose, the player has several commands, such as ‚grab from inbox‘, ‚jump if negative‘, ‚jump‘, ’subtract‘, ’store‘ and ‚put into outbox‘, to program the little office worker in order to carry out the developed algorithm.
Aside from correctly developing an algorithm, it is also important to keep the programming code as short and efficient as possible. This can be achieved by looping certain parts of an algorithm and checking if certain sequences can be jumped. These two goals are also a part of Human Resource Machine as the player can achieve bonus goals by not exceeding a certain amount of lines or reducing the amount of steps the little office worker has to carry out to a minimum.
In the end, Human Resource Machine teaches players the basics of programming in an engaging and entertaining way without requiring them to learn a certain programming language first. Once the players have understood the general concepts of programming, they might have fewer issues when they start to learn an actual programming language.