Code Factory – A game environment to start programming Gomes, A., Martins, N., Páris, C., Santos, A., Monteiro, R. Abstract: There is a high worldwide failure rate in the first programming subjects. Several authors point out various causes for this problem related with the difficulty of learning programming. Several tools were already developed to try to solve this problem, however the problem continues unsolved. In this paper “Code Factory” is presented. We believe it has a set of pedagogical and motivational features that help minimize the problems students usually face when programming. The goal of this interactive game is to follow a friendly robot (Sparky) in his adventure to restore the order of his robot factory and its malfunctioning assembly lines and security systems. To do this, Sparky will have to count on the students help to navigate throughout the different factory levels. Each one of these levels has a malfunctioning system which must be fixed by correctly programming its behaviour and so that the student can complete the remainder of the level. In order to stimulate the student, the game alternates between two environments, transiting between activities of playing in the 2D platform environment and activities of solving problems by building pseudocode (where students can practice and improve their programming skills). In this last environment, students have access to the multiple tools needed to develop pseudocode instructions and fix each malfunctioning system while observing its effects on the virtual world. In the game environment students are provided with information relative to the robot state and can navigate throughout each level while avoiding the factories damaged security systems. Students can also collect points, which can be used to buy special items that improve the robot capabilities. The “Code Factory” aims to provide an iterative and linear programming learning experience. The students begin by working with simpler concepts with well-defined objectives in order to acquire knowledge in a structured way, and gradually progressing to more complex concepts. The use of exercises with a visual representation allied to the graphical building of pseudocode provides students with an interactive way to explore different programming concepts, enabling them to develop their ability to analyze and solve problems. Until now Code Factory enables the use of core programming concepts such as sequential, selection and repetitive structures, different types of conditions and operators. It was already tested by a small number of teachers and students whose feedback is reported in this paper. Future improvements are being reformulated in order to answer the given feedback. Introduction Motivated by a series of failure rates in introductory programming courses worldwide, authors have been investigating the causes of such difficulties. There have been multiple reasons identified, such as the lack of abstraction capabilities, problem solving skills, and a solid math background needed to learn how to program software (Gray et al., 1993, Jenkins, 2002, Teague et al., 2008, Winslow et al., 2005). Many severe difficulties arise in students due to these reasons, hindering the ability to understand both core programming, and logical problem solving concepts, which is especially serious for engineering students. Another important reason, which is one of the main plausible causes for an elevated percentage of dropouts, is the lack of motivation in students. Several pedagogical approaches and tools were proposed to help students learn to program. In (Santos, Gomes e Mendes, 2010) there is a description of some of these tools. Although some positive effects were reported after the utilization of some of them, the number of students that drop out or fail programming courses is still remarkably high. From the knowledge we have of all these programs, we believe that the use of programmable worlds reveals very beneficial for learning introductory programming concepts. In particular, the ones like Scratch (Resnick et al., 2009). However, we noticed that there is a missing feature in this tool. He didn´t provide the student with a concrete objective beyond the construction of an interactive story or animation. This total freedom can be confusing for inexperienced students. Thus, some type of orientation is essential for the students to accomplish the task. So we consider important to have a new tool with the following main features: Consisting in a game to motivate students (Garris et al., 2002, Malone, 1980, Papastergiou, 2009, Park, 2012); Having a rich but simple and intuitive interface; Including comprehensible and familiar tasks to students; Providing a linear, progressive and interactive learning experience, where students begin by working with simpler concepts with well-defined