Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação - Kummer Neto, Alberto Francisco (2017)
Programming is a difficult subject, both to teach and learn. Thus, learning difficulties are common between CS students, commonly by the abstract nature of this subject. This concern is reinforced by its lenghty literature, and several studies show its close relation with failure and evasion rates in related undergraduate courses. The first papers of this subject date from 80’s, and several authors emphasize its importance due to its great affect to students formation process. Within the literature, it is possible to identify that “reactive” approaches gained more attention. This kind of discussions addresses very specific issues in programming of teaching-learning process, offering regular-shaped solutions (known as pedagogical patterns) to some problems. A pedadogical pattern suggests the capture and report of good teaching and learning practices, and emphasizes aspects such as context, forces, weakenesses, resources e consequences. Some pedadogical patterns discuss methodologies about how to keep track of student advances. The tracking activity could be overwhelming to teachers, as its complexity and time requirements grows with the classroom size. In general, teachers keep track of students progress through practice activities, which require that students to write some code to solve a problem specified by the teacher. Thus, a thorough analysis of students source code could indicate the learning defficiencies of some programmimg subjects. Practice activities also allow the use of tools to perform automatic code analysis, which could free some teacher time to more significant activities that might help in classes. This work introduces a tool to automate the analysis of source code repositories of programming students employing static code analysis tools. The proposed method suggest that all didactic activities be developed inside git repositories, and the publishing of solutions might be done using hosting servers like Github and Bitbucket, allowing the simultaneous analysis of several source code repositories of students of a programming class. It also aggregates the result of such analysis into a single report that can be viewed through a integrated user interface. As it is about the automation of a process, the tool allows the optimization of instructor time to evaluate students progress during the development of practical activities. This optimization reflects on a quick feedback to students as well, allowing a anticipated feedback to student about their work-in-progress solutions. Such feedback enables the improvement of their implementations before activities due date. The proposed approach has a additional gain of reinforce the usage of version control systems, a generally overlooked topic of CS courses. The conducted experiments showed that such approach is valid, as it gives evidences about students training. The teachers who participaded of study cases reported a strenghten engagement of students in classroom activities, as verified by the frequent requests of access to to detection reports compiled with the method.