Speaker
Description
Learning a programming language is a multi-challenge process, where students are required to use a specific syntax, semantics and set of rules to implement algorithms, step-by-step specifications of procedures. They are required to structure a problem in sub-problems or modules, that they need to tackle without loosing the full picture from sight, and work backwards to merge them into a solid solution for the initial problem. This requires strong motivation and effort from the students. Gamification can help with this and, at the same time, contribute to high levels of engagement and persistency, leading to a cycle of try-fail until success. "Programming is not a game… is it?" describes a gamification approach for autonomous learning and constant feedback for learning distributed systems programming. It is composed of a set of timed challenges, where the students can use any resource to complete a programming contest. A student companion, running in a docker container in the student’s computer, provides constant monitoring and feedback as well as the goals, guiding the student towards success.