8

Como automatizei a correção de mais de 1200 provas: o impacto dos resultados nas decisões pedagógicas

Atualmente atuo como coordenador de TI em uma instituição de ensino particular em Duque de Caxias, RJ. Se você já trabalhou com a área de educação alguma vez, já deve ter percebido o quão analógicas as coisas podem ser. Sei que nem todas as instituições são abertas a novas tecnologias, mas por aqui, graças a Deus, eu tenho essa possibilidade.

No início de abril a coordenação pedagógica me trouxe um desafio: "Precisamos aplicar um simulado e não sabemos como montar uma prova feita por muitos professores!" A lógica normal era cada professor enviar sua prova pronta por e-mail.

Mas num simulado multidisciplinar, como gerir contribuições separadas para uma mesma prova? Como criar versões diferentes para reduzir cola? E depois, como corrigir mais de 20 turmas, aproximadamente 1200 alunos, em dois dias de avaliação?

Decidi tentar. Fui levantando os requisitos a partir das conversas com a coordenação e aproveitei para testar pela primeira vez o desenvolvimento assistido por IA. A palavra é essa: "assistido". Digo isso porque quando você resolve um problema que vai afetar a vida de centenas de pessoas, a história do prompt mágico cai por terra rápido, e vou explicar o porque.

A solução que emergiu das conversas

A primeira decisão foi sobre como receber as questões dos professores. Usei um Google Forms. Enquanto eles enviavam as questões, já desenvolvia as primeiras features do MVP: importar as respostas do formulário e gerar a prova em múltiplas versões com os gabaritos embaralhados.

Para a geração do PDF escolhi Python com ReportLab. Minha stack padrão é Node e React, mas a escolha do Python fez sentido por dois motivos: a visão computacional seria mais simples de trabalhar nessa linguagem, e era uma boa oportunidade de aprofundar meus conhecimentos numa linguagem que já usei em outros projetos pessoais e para dar aulas, mas não é minha preferência no dia a dia.

A prova poderia ser feita de forma digital, em um sistema que bloqueasse o uso do computador para outros fins focando apenas na prova, como muitas instituições de ensino fazem país a fora. Mas não tínhamos um parque de máquinas tão grande disponível. Então o caderno impresso e o cartão resposta com bolhas foram a escolha natural, mas também por outro motivo: preparar os alunos para o formato do ENEM e de concursos públicos, os do ensino médio que já estão na reta final, e os do fundamental II que iriam vivenciar essa experiência pela primeira vez.

Como o sistema identifica cada aluno

Em vez de pedir que o aluno preenchesse a matrícula manualmente, cada cartão foi gerado com um ID único vinculado ao aluno e à avaliação no banco de dados.

Em cada um dos dias de prova, os alunos receberam um cartão e um caderno de questões. No caderno, uma tarja indicava qual a versão da prova. No cartão resposta, o cabeçalho vinha com o nome do aluno, o ID do cartão e uma área com bolhas para preencher a versão da prova, e logo abaixo a grade de questões a serem preenchidas.

Como fallback, existia a possibilidade de cartões anônimos que poderiam ser associados depois da leitura, para casos de ausência, reimpressão ou dano ao cartão original.

Pesquisando como provas de larga escala fazem a correção, encontrei o OMR (Optical Mark Recognition), a tecnologia por trás da leitura dos gabaritos do ENEM.

A partir daí, com a ajuda do Claude no navegador para explorar esse terreno novo pra mim, comecei a entender como processar imagens de PDF, TIFF e outros formatos gerados pelo scanner da escola.

O pipeline de leitura funciona assim: o cartão é digitalizado e a imagem passa por binarização Otsu (um jeito automático de transformar a imagem em apenas duas cores, preto e branco), para separar as marcações do fundo independente da iluminação.

Depois disso, o algoritmo detecta as quatro âncoras nos cantos para corrigir a perspectiva, e então lê as bolhas célula a célula.

Após a digitalização, veio a primeira dificuldade. Quando a equipe de TI começou a processar os cartões, apareceu um problema que ninguém tinha previsto: muitos alunos simplesmente não marcavam a versão da prova recebida (A, B, C ou D). Para o sistema, era esse o dado que determinava qual gabarito usar na correção.

A solução foi criar uma tela de revisão que listasse os casos sem versão, permitindo que a equipe associasse manualmente a prova correta antes de calcular a nota. Acionei a coordenação pedagógica, que verificou as versões das provas de cada aluno que não havia preenchido, e manualmente fizemos as associações.

Por que dados são tão valiosos na educação

Quando os relatórios ficaram prontos, a reação da coordenação foi diferente do que eu esperava. A surpresa não foi a velocidade da correção, como inicialmente esperavam. Foi o que os dados tornaram visível.

Organizei o sistema para gerar uma visão de desempenho por turma e por ano escolar. É possível identificar quais questões a turma errou mais, quais disciplinas puxaram a nota, e como cada turma se compara às outras do mesmo ano escolar.

A distribuição de respostas por alternativa em uma questão de matemática, por exemplo, pode revelar que boa parte da turma cometeu um erro de sinal, algo que um professor raramente vê com clareza antes de corrigir pilha por pilha.

Durante a implementação, por exemplo, o regimento escolar previa uma regra de arredondamento: qualquer nota após a vírgula era arredondada para o valor inteiro ou meio ponto mais próximo. Decidi mostrar as duas notas lado a lado no relatório final, a nota bruta e a nota já arredondada conforme o regimento.

Ver os dois números lado a lado fez a equipe pedagógica começar a estudar se a regra atual potencializa ou encobre o esforço de quem está perto de subir de nota. A coordenação não encarou isso como falha do regimento, mas como oportunidade de melhoria.

Essa discussão ainda está em aberto. E partiu de um dado que simplesmente não existia antes.

O papel do Claude Code

Trabalhei com o Claude Code ao longo de vários dias. Ele foi muito útil para estruturar o projeto desde o início: organização de módulos, separação entre geração e leitura, parâmetros centralizados em arquivo de configuração.

O plugin superpowers ajudou a manter um processo mais consistente garantindo sempre a criação de testes e fazendo um brainstorm adequado antes de cada novo procedimento.

O que a ferramenta não faz é entender o contexto escolar. Ela pode inferir o que faz diferença, mas a realidade prática e como que o sistema afeta o dia a dia da instituição, apenas um analista minucioso pode descrever e especificar as mudanças e funções necessárias.

O que ficou claro pra mim é que o valor do desenvolvedor que trabalha com IA está em ser um bom analista de sistemas: entender o contexto de verdade, definir claramente o que precisa ser feito, validar o que foi implementado, conversar com as pessoas certas para extrair corretamente as informações e no fim garantir que os requisitos foram atendidos de fato, e não "mais ou menos".

A IA executa bem quando você sabe o que quer. A dificuldade de saber o que quer é sua.

O que vem depois

O simulado ocorreu, os relatórios estão em análise pela coordenação. O conceito foi validado.

Os próximos passos da aplicação irão focar em:

  • Criar uma interface para os professores cadastrarem questões sem passar pelo Google Forms
  • Integração com o ERP da escola para facilitar o lançamento das notas (a API atual da empresa parceira tem limitações a explorar)
  • Fluxo de revisão mais claro para os casos em que o aluno não preencheu a versão da prova
  • Documentação e Onboarding para que outra pessoa opere o sistema sem meu acompanhamento

E se você leu até aqui, espero que tenha gostado. Se tiver alguma sugestão ou dúvida ( que eu possa contribuir respondendo ), fique a vontade para comentar.

Carregando publicação patrocinada...
2

Meus 2 cents,

Parabens pela iniciativa !

Ler teu relato da outra perspectiva sobre quando colocamos a tecnologia para ajudar de fato a resolver problemas do dia-a-dia, sem ser algo abstrato.

So fiquei com uma duvida: voces estao usando algum tipo de scanner especifico para ler as provas ou eh um scanner comum (p.ex. de impressoras multifuncionais) ?

Se for um scanner comum, uma alternativa nao poderia ser fotografar as provas com um celular (talvez fosse mais rapido) ?

Obrigado por compartilhar !

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

1

Então, aqui nós temos uma dessas impressoras multifuncionais corporativas, no caso uma Ricoh 3054, e ela tem um recurso que puxa o papel sozinho no scanner chamado de ADF (do inglês Automatic Document Feeder, que tive que pesquisar o nome pra te falar aqui rs'), foi o que possibilitou essa leitura em massa dos cartões resposta.

Contudo o sistema também permite o uso da câmera do celular, basta que ao fazer a foto sejam capturadas as marcações no cartão resposta. ( Segue uma imagem de um cartão anônimo como referência: https://ibb.co/Q3TVxSCV ).

E funciona tranquilamente porque quando passa pela binarização a imagem fica com o máximo de contraste possível e o leitor OMR corrige a perspectiva para fazer a leitura. Em geral, leituras feitas com o scanner são 100% confiáveis, as como o celular (com uma imagem boa) ficam entre 80% - 95% de confiança e se a imagem for ruim ai a leitura fica comprometida.

Eu inclui uma revisão manual (ex: https://ibb.co/Rkn2nShK) que me mostra esse percentual de confiança para garantir que, nessa primeira aplicação, tudo sairia da melhor forma.

Espero ter respondido sua dúvida!

2

Relato muito interessante! Fico feliz em ver alguém trabalhando com tanta paixão, visando melhorar o ambiente para todos. Dava para ser muito mais "relaxado" e continuar com os processos antigos, sem mudar nada e sem ninguém apontar isso como um problema, por isso tive a impressão que teve "paixão" envolvida.

Parabéns pelo projeto.

1

Fala Rafael, obrigado pelas palavras.
Além de dev, também sou professor, e constumo dizer aos meus alunos que a tecnologia é sobre pessoas. Se a ferramenta não for útil para tornar o dia de alguém mais fácil estamos trabalhando em vão. Fico feliz com seu comentário.