Aranha, Eduardo Henrique da SilvaCarneiro, Jairo Rodrigo Soares2024-01-032024-01-032023-11-06CARNEIRO, Jairo Rodrigo Soares. Um assistente virtual de programação para suporte ao aprendizado de domínio. Orientador: Dr. Eduardo Henrique da Silva Aranha. 2023. 140f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2023.https://repositorio.ufrn.br/handle/123456789/57147[Context] The high rates of student retention and dropout in IT courses and related areas are still barriers to be overcome, especially when they are related to certain subjects and/or programme content in their curricula, such as computer programming. In this way, attention has been focussed on technological training courses, especially in the search for solutions that will enable educational institutions to deal with the challenges of this issue. [Problem] It turns out that teaching and learning programming in higher education classes is challenging. From a teaching perspective, issues related to the daily challenges of dealing with class time, rigid curricula, student demotivation, large and heterogeneous classes, among other things, make it impossible to provide more individualised support for students or end up resulting in an overload of activities for the teacher. This overload can jeopardise teaching not only in terms of assisting students, but also in choosing and implementing pedagogical models that go against the traditional teaching model, such as Mastery Learning. This educational theory corresponds to a pedagogical approach proposed by Benjamin Bloom, who predicts that all students in a class can progressively reach the same level of understanding of the content (mastery) when provided with the necessary conditions. However, the cost of implementing this approach can be very high for teachers, especially when it is not subsidised by technology. [Proposal] In this sense, as a way of supporting introductory programming courses, this study describes a virtual programming assistant that integrates a set of functionalities that can favour the adoption of Mastery Learning in programming classes as it contributes to students' learning aspects through automated actions. [Objective] This assistant aims to assist teachers in promoting continuous and customised feedback. Therefore, the main objective of this study is to investigate how a Virtual Programming Assistant, designed with functionalities that enable the use of Mastery Learning, can support the work of teachers with their respective students in introductory programming courses mediated by educational platforms for teaching and learning programming online. [Methodology] As a starting point for achieving this objective, a systematic mapping of the literature was carried out, which brought together 40 primary studies dealing with the use of Mastery Learning in the areas of interest. Two studies were then planned and carried out with around 300 new students on an Information Technology degree course and their respective teachers (five). The first was an exploratory study carried out to better investigate the problem and build the virtual assistant proposal. The second was a case study aimed at validating the defined proposal. [Results] The results show that the virtual assistant, in addition to benefiting teachers in correcting the proposed programming exercises and giving feedback to students, where over 9,000 (nine thousand) feedbacks were given throughout the course, can favour the adherence of the Mastery Learning pedagogical model by teachers in introductory programming classes.Acesso AbertoAprendizado de domínioAssistente virtualEnsino de programaçãoUm assistente virtual de programação para suporte ao aprendizado de domínioA virtual programming assistant to support mastery learningmasterThesisCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO