In order to make use of the programming exercises, an interactive programming learning environment is required to properly visualize the content of the exercise (including the possible theoretical context, the problem statement, the goal of the exercise or the initial code), allow the student to prepare and submit the solution, provide feedback (accepting or declining the solution, pointing to the identified flaws and suggesting directions for corrections) as well as give the instructor the access to the progress indicators and solutions submitted by individual students he or she supervises.
A new set of required functionalities of such a platform comes from the fact that the featured exercises are gamified. The new components of the exercise content have to be visualized (such as the storyline), as well as the student’s achievements (badges, virtual items) and general progression (points and levels). The gamification-related indicators (time passed, number of trials before submitting correct solution, number and type of tokens in the solution) have to be constantly monitored and checked against the gamification rules, instantly triggering respective feedback (e.g. „time is up, challenge failed”) and status changes (e.g. „new badge granted”). Gamification may sometimes also require additional input from the student (e.g. „choose your quest”).