Content area
Abstract
A sociedade quotidiana está embebida na tecnologia. Várias atividades do nosso dia-a-dia estão diretamente ligadas e dependentes do mundo tecnológico. Isto torna-se mais evidente no contexto do MIEIC, onde todo o percurso académico está relacionado com software.
Sendo assim, no conjunto de métodos automáticos já implementados no curso, há realidades não enquadradas na ideologia da automação: o processo de correção de testes. Em unidades curriculares como LPOO e MPCP são usados IDEs para a resolução de exercícios de programação. No entanto, o processo de correção é essencialmente manual, exigindo um esforço significativo dos docentes e uma espera acrescida dos alunos pelo feedback.
Assim, o objetivo desta dissertação é desenvolver uma plataforma Web que permita a avaliação automática de programas desenvolvidos pelos alunos em contexto de exame ou aula. A plataforma permitirá aos alunos submeterem o seu código e, posteriormente, num ambiente controlado e seguro (protegendo de código malicioso e/ou ciclos infinitos), executar o código e uma bateria de testes (disponibilizada pelo docente) comparando o outputesperado com o obtido. Por fim, a plataforma apresenta os resultados automaticamente ao aluno.
Esta dissertação envolveu, numa fase inicial, um estudo de várias ferramentas e frameworks existentes que permitem, sob diferentes contextos , a avaliação automática de código como o Mooshak ou o SPOJ com o objetivo de identificar pontos fortes que sejam passiveis de integração com o Moodle. Posteriormente, a plataforma foi desenvolvida seguindo um processo iterativo, em 3 fases: desenvolvimento de um servidor que permitirá a submissão do código e bateria de testes por parte do aluno e do docente, respetivamente; desenvolvimento de ambiente server-sideresponsável pela avaliação do código e retorno dessa mesma avaliação; desenvolvimento da interface de visualização do output esperado e obtido e das estatísticas relativas à execução.
A ferramenta foi validada recorrendo a contextos reais, as aulas de MPCP e LPOO. É expetável que a plataforma seja útil no processo de avaliação de código, onde o principal objetivo é proporcionar um ambiente mais propício para os alunos e mais seguro e automático para os docentes.
Este documento encontra-se dividido em 5 seções: A primeira introduz o contexto do problema desta dissertação, a motivação e objetivos e terminada com uma exposição do conteúdo de cada uma das seguintes seções. A segunda consiste numa contextualização de quando são usadas ferramentas de avaliação automática de código fonte, um apanhado das várias plataformas de elearning e ferramentas existentes. A terceira expõe a solução desenvolvida nesta dissertação, que compreende a arquitetura do sistema, as funcionalidades implementadas, as interfaces, estruturas de dados na base de dados e no servidor e a descrição dos módulos de correção automática. A quarta expõe as experiências realizadas de modo a validar a solução e os resultados correspondentes. Por fim, a quinta apresenta as conclusões retiradas e os planos para trabalho futuro.





