Projeto M13, Sistema Adaptativo de Aprendizagem

Um sistema que ajusta as explicações e os exercícios ao perfil e ao histórico de cada aluno. É o projeto que fecha o Módulo 13 e reúne o perfil persistente, o knowledge tracing e a personalização que ele ensinou.

O que o sistema faz

  • Mantém um modelo do aluno com o domínio estimado de cada habilidade.
  • Atualiza o domínio a cada resposta com knowledge tracing (considerando deslize e chute).
  • Persiste o modelo entre sessões, salvando e carregando em JSON.
  • Recomenda a próxima ação (revisar, praticar, avançar), a profundidade da explicação e a dificuldade do exercício, afinando pela preferência do aluno.
  • Mantém o aluno na zona certa de desafio conforme o seu domínio evolui.

Como rodar

O sistema roda do zero, só com a biblioteca padrão do Python.

python adaptive_system.py

A demonstração simula a trajetória de uma aluna que erra e depois acerta cada vez mais, e mostra a recomendação evoluindo de revisar para praticar e avançar conforme o domínio sobe.

Usando no seu código

from adaptive_system import ModeloAluno

aluno = ModeloAluno("Ana", preferencias=["exemplos visuais"])
aluno.registrar_resposta("derivada", correto=True)
print(aluno.dominio)                      # domínio estimado por habilidade
print(aluno.recomendacao("derivada"))     # ação, profundidade, dificuldade

aluno.salvar("modelo_ana.json")           # persiste entre sessões
mesma_ana = ModeloAluno.carregar("modelo_ana.json")

Testes

Os testes rodam só com a biblioteca padrão. Eles exercitam o knowledge tracing, a recomendação adaptativa, a persistência (ida e volta fiel) e a evolução da recomendação ao longo da trajetória.

pytest projects/m13-student-modeling/

Como melhorar (próximos passos sugeridos)

  • Estimar o domínio com deep knowledge tracing, usando as redes recorrentes do Módulo 5.
  • Usar o LLM (Ollama) para gerar as explicações na profundidade recomendada.
  • Selecionar o próximo exercício de um banco real, com dificuldade calibrada.
  • Integrar o modelo do aluno ao agente tutor do Módulo 10 e ao analytics do Módulo 12.

Decisões de projeto

O sistema foi escrito do zero para que toda a lógica de modelagem e adaptação fique visível e rode sem dependências. O knowledge tracing dá uma estimativa de domínio com fundamento e interpretação, superior a uma média simples. A persistência em JSON garante a continuidade entre sessões, base do acompanhamento de longo prazo. A personalização persegue a zona certa de desafio, adaptando o ensino a cada aluno em vez de tratar todos igual.