Minimizando o esforço de avaliação em disciplinas de programação introdutória utilizando agrupamentos adaptáveis. - BARBOSA, Alexandre de Andrade. (2018)
A habilidade de programar é uma das competências fundamentais na área da computação. Esse conhecimento é basilar para a compreensão de diversos outros conceitos necessários tanto para vida acadêmica, quanto para as atividades profissionais nesta área. Contudo, apesar de tal importância, é bastante comum encontrar problemas em ambientes de ensino e aprendizagem de programação. Muitos são os fatores descritos como relacionados com as dificuldades existentes nas disciplinas de programação. Facilmente, em tais ambientes, encontramos alunos desmotivados, com dúvidas não esclarecidas e que não conseguem entender os conceitos necessários para prática de programação. Tradicionalmente, em disciplinas de programação são adotadas atividades práticas de codificação. Nestas atividades, a análise das soluções propostas pelos alunos nestas atividades não é simples. Muitos fatores podem ser observados na avaliação de um programa, o que torna essa avaliação demorada, sujeita ao viés e aos erros do avaliador. Dessa forma, o professor, mesmo quando auxiliado por monitores, em geral, não será consegue realizar avaliações de forma rápida, ou, para agilizar o processo não irá fornecer feedback detalhado. Na presente tese de doutorado, investigou-se a possibilidade de agrupar códigos fornecidos como soluções para um problema (exercício) de programação. O agrupamento de soluções foi proposto com a intenção de possibilitar o reúso de feedbacks de modo a minimizar o esforço de avaliação dispendido no contexto de ensino e aprendizagem introdutórios de programação. A investigação ocorreu através da condução de um survey, realizado com o objetivo de compreender os processos relacionados com a avaliação de códigos em disciplinas introdutórias de programação, um quasi experimento e um experimento, realizadas com dois objetivos: (i) investigar se é possível agrupar códigos de modo que uma avaliação seja generalizada para os elementos de um mesmo grupo (cluster); e (ii) verificar se a avaliação generalizada teria resultados semelhantes aos fornecidos por avaliadores humanos. Os resultados obtidos na avaliação de abordagem sugerem que é possível reutilizar feedbacks de modo que o esforço de avaliação dispendido seja minimizado. Embora alguns ajustes ainda sejam necessários, foi possível observar que a concordância obtida entre as notas geradas e as fornecidas por um avaliador variam entre uma concordância razoável, no pior caso, para uma concordância perfeita, no melhor caso. Além disso, muitos dos feedbacks textuais generalizados com base nos textos fornecidos pelos avaliadores foram indicados como ‘parcialmente aplicáveis’ ou ‘totalmente aplicáveis aos códigos avaliados.