CodeTesting: Sistema de apoio ao ensino de Lógica de Programação

  • Ester Mabel Universidade Católica do Salvador
  • Joaldo Tavares Universidade Católica do Salvador
  • Yla Buri Universidade Católica do Salvador
  • Mario Pereira Universidade Católica do Salvador

Resumo


A disciplina de lógica de programação apresenta uma grande dificuldade para alguns estudantes. Essas dificuldades podem estar associadas à dificuldade de interpretar o problema proposto, dificuldade com a linguagem utilizada, ou até mesmo problemas para interpretar erros que ocorrem durante o desenvolvimento da solução. Além disso, muitas vezes os professores não possuem tempo durante a aula para corrigir e avaliar individualmente a solução de cada estudante [6]. Algumas pessoas têm uma experiência frustrante em seu primeiro contato com a programação por diversas razões. Algumas delas incluem a preocupação excessiva com detalhes de sintaxe da linguagem utilizada e a falta de clareza sobre o problema a ser solucionado, o que impede que uma solução adequada seja construída e mapeada. Isso pode resultar em obstáculos que dificultam o aprendizado nas disciplinas voltadas para a programação [7], transformando o esforço exercido na construção das soluções em um desafio adicional. Os cursos superiores de informática que têm a programação como base, tais como Programação Orientada a Objetos, Estrutura de Dados e Lógica de Programação e Algoritmos, têm enfrentado problemas de evasão e reprovação nos períodos iniciais. Essa situação afeta diretamente os resultados dos sistemas educacionais, tanto em instituições públicas quanto privadas. Infelizmente, muitos alunos iniciam esses cursos, mas não os concluem, resultando em um investimento de recursos que não gera retorno para a sociedade [5]. Após avaliar as dificuldades enfrentadas pelos alunos dos cursos de computação, constata-se a necessidade de novas metodologias e ferramentas que possam ajudá-los durante os primeiros períodos de aprendizado [4]. Nesse contexto, propõe-se uma solução que possa auxiliar tanto os estudantes iniciantes em programação quanto os professores, por meio da correção e avaliação de códigos dos alunos. Em sua maioria os sistemas desse tipo se apresentam como juízes online e sua principal funcionalidade é a execução do código e com base nos testes verificam se eles foram atendidos. Um dos mais recorrentes na literatura é o BOCA [3] utilizado na maratona de programação da Sociedade Brasileira de Computação (SBC), mas podemos citar outros como Beecrowd [2] e Neps [1]. A plataforma desenvolvida tem como objetivo oferecer uma aplicação web e mobile que ajuda no ensino e aprendizado da disciplina de lógica de programação, utilizando a linguagem de programação Java. A ideia é tornar o aprendizado mais acessível e interativo em dispositivos móveis e computadores com acesso à internet. A aplicação web e mobile permite que a ferramenta seja acessível em diferentes dispositivos e plataformas, atendendo a um público mais amplo. Ela se distingue dos juízes online por sua flexibilidade em termos de funcionalidades e pela maneira como lida com os erros, fornecendo feedbacks em uma linguagem simples e direta. O CodeTesting permite aos professores realizar o cadastro das tarefas, onde serão inseridos casos de testes com as entradas que serão utilizadas para testar o código e a saída esperada para aquele teste. Cada caso de teste será executado usando o código enviado pelo aluno para avaliar se a solução atende à saída esperada. Também possibilita ao aluno acessar a atividade, visualizar o enunciado, assim como alguns exemplos de entrada e saída e, por fim, fazer o envio da sua resolução. Após o envio, ao aluno também é possibilitado analisar o resultado obtido da questão enviada. Ele tem acesso à nota geral e aos casos de testes, onde ele pode entender melhor como o seu código se comportou diante daquele cenário. Se o código for compilado com sucesso, cada caso de teste executado pode gerar um dos três cenários: • Resposta Certa: quando o código enviado retorna o resultado conforme o esperado pelo teste; • Resposta Errada: quando o código enviado retorna um resultado diferente do esperado; • Erro em Tempo de Execução: quando o código enviado retorna alguma exception, neste caso são informados mais detalhes sobre à exception em questão. Dentro desse contexto, apresenta-se uma ferramenta funcional para aplicação e correção de código para os alunos e professores, com o principal intuito de colaborar no processo de aprendizagem e no desenvolvimento de soluções para problemas dentro das disciplinas de programação. Este sistema é uma alternativa em meio a diversas soluções já existentes.

Palavras-chave: Lógica de programação, Teste automatizado, Plataforma

Referências

Neps Academy. (2022). Sobre nós. https://neps.academy/br/about-us

Jean Luca Bez. 2014. URI ONLINE JUDGE E A INTERNACIONALIZAÇÃO DA UNIVERSIDADE. Vivências: Revista Eletrônica de Extensão da URI 10, 18, 237–249.

Cassio P. de Campos and Carlos E. Ferreira. [n.d.]. BOCA: um sistema de apoio a competicõoes de programação.

Crediné Silva de Menezes, Orivaldo de Lira Tavares, Rosane Aragón de Nevado, and Davidson Cury. [n.d.]. Computer Supported Co-Operative Systems to Support the Problem Solving - A Case Study of Learning Computer Programming.

Lucia Maria Martins Giraffa and Michael da Costa Mora. 2013. Evasão na disciplina de algoritmo e programação: um estudo a partir dos fatores intervenientes na perspectiva do aluno. Tercera Conferencia Latinoamericana sobre el abandono en la Educación Superior, 1–9.

André Luís Alice Raabe and Júlia Marques Carvalho da Silva. 2005. Um Ambiente para Atendimento as Dificuldades de Aprendizagem de Algoritmos. XIII Workshop de Educação em Computação, 1–11.

Silvério Sirotheau, Silvana Rossy de Brito, Aleksandra do Socorro da Silva, Marianne Kogut Eliasquevici, Eloi Luiz Favero, and Orivaldo de Lira Tavares. 2012. Aprendizagem de iniciantes em algoritmos e programação: foco nas competências de autoavaliação.
Publicado
24/04/2023
MABEL, Ester; TAVARES, Joaldo; BURI, Yla; PEREIRA, Mario. CodeTesting: Sistema de apoio ao ensino de Lógica de Programação. In: LABORATÓRIO DE IDEIAS - SIMPÓSIO BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO (EDUCOMP), 3. , 2023, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 22-23. DOI: https://doi.org/10.5753/educomp_estendido.2023.229141.