Executando verificação de segurança...
2

Ensinar Arduino foi fácil. Ensinar um sistema a entender alunos foi o problema

Bom dia, devs,

Hoje eu queria compartilhar uma história e uma solução para um problema bem específico, mas que talvez faça sentido pra quem já tentou escalar algo manual que claramente não nasceu pra isso.

Além de desenvolvedor, também sou professor da rede estadual no Paraná. Entre as disciplinas que leciono está Robótica, onde os alunos têm o primeiro contato com Arduino. Por ser uma matéria essencialmente prática, avaliar de forma objetiva sempre foi um desafio. Provas tradicionais não capturam bem o aprendizado, então optei por algo mais coerente com a proposta: relatórios de cada projeto desenvolvido, enviados via Google Forms.

Até aí, tudo certo. O problema começou quando a realidade bateu.

São cerca de 180 alunos. Cada um enviando, em média, 5 relatórios. Isso dá algo perto de 900 textos para ler, interpretar e avaliar em um prazo de duas semanas (antes do fechamento do trimestre). Na prática, inviável.

Foi aí que surgiu a ideia: criar um software que automatizasse parte desse processo. Algo que:

  • Organizasse quem entregou e quem não entregou
  • Identificasse trabalhos em grupo
  • Classificasse os projetos
  • Gerasse uma nota parcial baseada no esforço e preenchimento
  • Apontasse alunos em risco

Até aqui, parecia só mais um projetinho de automação. Mas aí entrou o fator humano.

Uma das perguntas do formulário era: “Qual era o objetivo da aula?”

O exemplo dado em sala era algo como:
"Entender um circuito elétrico e acender um LED usando um resistor"

Agora olha o que apareceu nas respostas:

  • "ligar um led com um resistor 100w e 300w."
  • "Ligar o led"
  • "acender o led"
  • "Acender o Led sem queimá-lo."

Para qualquer pessoa, isso claramente significa a mesma coisa. Para um sistema automatizado… nem tanto.

Boa parte do esforço não foi construir interface ou processar CSV. Foi ensinar o sistema a entender que diferentes formas de escrever, com erros, simplificações ou interpretações, ainda representam o mesmo conceito.

O projeto acabou ficando algo como:

  • Backend em Python com Pandas para tratamento e consolidação dos dados
  • Classificação baseada em palavras-chave e heurísticas
  • Normalização pesada de texto (lowercase, remoção de variações, etc.)
  • E um frontend simples em React pra visualizar tudo

Nada extremamente sofisticado, mas suficiente pra reduzir horas de trabalho manual pra alguns minutos de processamento.

No fim, o problema não era técnico no sentido clássico. Era semântico. Era lidar com linguagem humana desorganizada, inconsistente e, às vezes, criativa demais.

Se tem uma coisa que ficou desse projeto é: automatizar é fácil. Padronizar humanos é que não.

Se alguém já passou por algo parecido (principalmente com dados “livres” vindos de usuários), vai entender exatamente onde mora a dor.

Boa daily e bom deploy a todos que leram até aqui.

Dev Casten.

Carregando publicação patrocinada...