Método e ferramental para mapeamento da evolução de programadores durante o desenvolvimento de programas - Krug, Douglas Lusa (2018)
The activity of computer programming, pertaining to the Software Engineering domain, is a fundamental element of the software development process. Computer programming is initially taught in courses related to the area of Computer Science in basic subjects named Fundamentals of Programming, Logic of Programming and others. These subjects are considered difficult and present a high index of withdrawal and failure. Therefore, methods and tools that assist in the teaching-learning process are necessary. This work reports the proposition of a method and tools for mapping the evolution of programmers during the development of computer programs, and it can be used as an aid in the computer programming teaching-learning process. The proposed method guides the collection and data analysis from events generated during computer programming and, in turn, the tools developed allow the data collection and consolidation for the instructor/teacher's analysis. Using the method and tools developed it was possible to carry out 5 experiments with students from technical and undergraduate courses in the area of Computer Science and Engineering in 3 different institutions. Based on the data collected in these experiments it was possible to observe that the number of failed compilations, the average of compilation errors and the total number of compilation errors are related to the grade assigned to the solved exercise, the higher these numbers are, the lower the obtained grade is. Also, regarding the data collected in the experiments, it is possible to group the errors performed by students during the development of the programs, giving the instructor/teacher an individual and group overview regarding their difficulties. In addition, a positive impact was also observed regarding the detailed feedback to the students about the data collected during the program development, because in the second data collection, in comparison with the first, it is possible to observe a lower incidence of compilation errors performed during the program development process.