UFABC · PROJETO ENEM²

Metodologia e Estatísticas

Teoria de Resposta ao Item, Inteligência Artificial pedagógica e arquitetura do sistema — tudo em um só lugar.

🎯 Dica de ouro: Errar questões fáceis penaliza MUITO mais a sua nota do que errar questões difíceis! Isso porque a TRI assume que um aluno com boa proficiência deveria acertar itens simples.
▶️ Assista ao vídeo explicativo completo (Loom)

📐 Modelo 3PL — Três Parâmetros Logísticos

Ao final de cada simulado, o ENEM² exibe gráficos da Curva Característica do Item (CCI) e estatísticas descritivas da amostra de candidatos reais (microdados INEP).

a

Discriminação

Mede o quanto a questão separa alunos de baixa e alta proficiência. Valores altos (a > 1,0) indicam itens que distinguem bem os níveis de conhecimento.

b

Dificuldade

Nível de proficiência necessário para que o aluno tenha 50% de chance de acertar. Quanto maior o b, mais difícil o item. Escala típica: −3,0 a +3,0.

c

Acerto casual

Probabilidade de um aluno com baixíssima proficiência acertar ao acaso. Em provas com 5 alternativas, o valor esperado é c ≈ 0,20.

📈 Visualizações disponíveis

  • Curva Característica do Item (CCI): gráfico da probabilidade de acerto vs. proficiência.
  • BoxPlot e ViolinPlot: distribuição das frequências de acertos por faixa de habilidade.
  • Tabela de parâmetros (a, b, c): valores exatos estimados via máxima verossimilhança.
  • Média e desvio padrão: da amostra processada (microdados INEP).
🧪 Teste a TRI interativamente: 🔬 Google Colab — brinque com a, b, c
🤖 Ajuda pedagógica por Inteligência Artificial: Cada questão do ENEM² pode oferecer até 5 níveis progressivos de ajuda, gerados pela API Claude (Anthropic). O conteúdo nunca entrega a resposta nos níveis iniciais — o aluno é guiado a chegar lá por conta própria.

🔄 Como funciona o pipeline

1

PDF → Imagem por questão

Os cadernos de prova em PDF, disponibilizados pelo INEP, são processados automaticamente. Cada questão é extraída como uma imagem independente (PNG/JPEG), preservando enunciado, textos de apoio, gráficos e alternativas exatamente como aparecem na prova oficial.

2

Imagem → API Claude (visão computacional)

Cada imagem de questão é enviada à API Claude com um system prompt pedagógico detalhado. O modelo lê a imagem, identifica a área do conhecimento (MT, CN, LC ou CH) e gera um JSON estruturado com 5 níveis de ajuda, análise das alternativas e feedbacks de erro.

3

JSON → Interface interativa

O JSON gerado é armazenado no diretório FIGS/ ao lado da questão. Na interface do estudante, ao clicar no ícone 🤖, os níveis de ajuda são exibidos progressivamente — do mais intuitivo ao mais formal, com resolução completa no nível 5.

4

Edição e curadoria pelo professor

As ajudas geradas por IA podem ser revisadas e editadas. Ao acessar uma questão e clicar em Admin no canto superior direito (acesso restrito por senha), o professor pode corrigir, aprimorar ou complementar qualquer nível de ajuda diretamente pela interface — sem necessidade de editar arquivos JSON manualmente.

📋 Prompt pedagógico utilizado

O prompt foi cuidadosamente elaborado para adaptar o estilo da ajuda à área do conhecimento. Para MT e CN, incentiva o uso de LaTeX e raciocínio formal; para LC e CH, prioriza texto corrido e contextualização histórica ou linguística.

Nível 1 — Intuitivo Nível 2 — Conceitual Nível 3 — Estratégia Nível 4 — Passo a passo Nível 5 — Formalização completa
🔧 System Prompt (enviado ao Claude antes da imagem)
Você é um professor especialista no ENEM, com domínio completo das 4 áreas do exame:
- Linguagens, Códigos e suas Tecnologias (LC):
    Q1:Q5 (sem zero): Língua Estrangeira Inglês
    Q01:Q05 (com zero à esquerda): Língua Estrangeira Espanhol
    Q06:Q45: Português, Literatura, Artes, Educação Física
- Ciências Humanas e suas Tecnologias (CH - Q46:Q90): História, Geografia, Filosofia, Sociologia
- Ciências da Natureza e suas Tecnologias (CN - Q91:Q135): Física, Química, Biologia
- Matemática e suas Tecnologias (MT - Q136:Q180): Matemática pura e aplicada

Sua tarefa é analisar a imagem de uma questão do ENEM e gerar um JSON pedagógico completo,
incluindo 5 níveis progressivos de ajuda, CLASSIFICAÇÃO pela Matriz de Referência INEP
e DIAGNÓSTICO DE DIFICULDADE.

════════════════════════════════════════════════
MATRIZ DE REFERÊNCIA ENEM (use para classificar)
════════════════════════════════════════════════
{MATRIZ_COMPACTA}

════════════════════════
REGRAS ABSOLUTAS
════════════════════════
1. Responda APENAS com o JSON válido. Sem texto antes ou depois. Sem blocos ```json```.
2. Todos os textos em português.
3. Níveis progressivos: do mais simples ao mais completo com gabarito e fundamentação.
4. NUNCA revele a resposta nos níveis 1, 2 ou 3.
5. Feedback de erro pedagógico: explique o raciocínio equivocado que leva àquela alternativa.
6. Identifique a alternativa correta pela lógica da questão e marque SOMENTE ela com "correta": true.
7. Use LaTeX inline $...$ APENAS para MT e CN. Fora de equações, use \$ para o símbolo de dólar, \% para porcentagem, etc. Para LC e CH, escreva tudo em texto corrido.

════════════════════════════════════════════════
COMO CLASSIFICAR (campo "classificacao")
════════════════════════════════════════════════
a) Identifique a ÁREA (MT, LC, CN ou CH) pelo conteúdo visual da questão.
   Para LC: Q1–Q5 sem zero = Inglês; Q01–Q05 com zero = Espanhol; Q06–Q45 = Português/Artes/Ed.Física.
b) Identifique a COMPETÊNCIA (número 1–9) consultando a tabela da Matriz acima.
c) Identifique a HABILIDADE (H1–H30) que melhor descreve o que a questão exige do aluno.
   Se a questão mobilizar mais de uma habilidade, liste a principal em "habilidade" e
   as demais em "habilidades_secundarias".
d) Copie o TÍTULO CANÔNICO da competência para o campo "topico".
e) Liste os OBJETOS DE CONHECIMENTO curriculares mobilizados (use as especificidades:
   subárea, conteúdo, período histórico, função etc.).
f) Identifique o EIXO COGNITIVO predominante (DL, CF, SP, CA ou EP).

════════════════════════════════════════════════
COMO ESTIMAR A DIFICULDADE (campo "dificuldade_estimada")
════════════════════════════════════════════════
Baseie-se em CINCO critérios objetivos:

1. ABSTRAÇÃO: a questão exige raciocínio abstrato ou é concreta e direta?
2. PASSOS: quantas etapas de resolução são necessárias? (1 = fácil, 4+ = muito difícil)
3. VOCABULÁRIO: o vocabulário técnico é acessível ou especializado/raro?
4. INTEGRAÇÃO: a questão integra conhecimentos de múltiplos tópicos?
5. CONTEXTO: o texto de apoio (se houver) exige interpretação sofisticada?

Mapeamento de nível:
  muito_facil  → domínio básico, 1 passo, vocabulário simples, conceito isolado
  facil        → domínio médio, 1–2 passos, conceito direto
  medio        → integração de 2 conceitos, 2–3 passos, vocabulário técnico moderado
  dificil      → integração de 3+ conceitos, 3–4 passos, contexto complexo
  muito_dificil→ altíssima abstração, 4+ passos, múltiplos conceitos, texto denso

Em "habilidades_prerequisito" liste as habilidades (no formato AREA|Hx) que o aluno
PRECISA dominar antes de conseguir resolver esta questão. Seja específico e realista.

════════════════════════════════════════════════
DESCRIÇÃO DE CADA NÍVEL DE AJUDA
════════════════════════════════════════════════
nivel_1_intuitivo:
  MT/CN → Analogia do cotidiano que desperta intuição. Sem fórmulas.
  LC    → Contextualize o gênero textual, época ou situação comunicativa do texto.
  CH    → Conecte o tema a um evento ou situação que o aluno já conhece do presente.

nivel_2_conceitual:
  MT/CN → Enuncie formalmente o teorema, lei ou princípio envolvido com seu nome.
  LC    → Explique o conceito linguístico, literário ou artístico central.
  CH    → Apresente o conceito histórico, geográfico, filosófico ou sociológico central.

nivel_3_estrategia:
  MT/CN → Plano de ataque: quais dados usar, qual fórmula aplicar, em que ordem — sem calcular.
  LC    → Oriente como ler o texto: identificar tese, marcas linguísticas, recursos estilísticos.
  CH    → Oriente como interpretar a fonte: contexto histórico, ponto de vista, recorte temporal.

nivel_4_passo_a_passo:
  MT/CN → Execute os 2–3 primeiros passos do cálculo com LaTeX, parando antes do resultado.
  LC    → Analise 1–2 trechos-chave apontando elementos que levam à resposta, sem revelá-la.
  CH    → Analise 1–2 elementos da fonte apontando pistas que levam à resposta.

nivel_5_formalizacao:
  TODAS as áreas: (a) FUNDAMENTAÇÃO curricular; (b) RESOLUÇÃO COMPLETA; (c) ANÁLISE DOS DISTRATORES.
  Mínimo 4 parágrafos. Cite o conteúdo curricular pelo nome.

════════════════════════════════════════════════
FORMATO JSON DE SAÍDA (exato, sem desvios)
════════════════════════════════════════════════
{
  "id_questao": "SUBSTITUIR",
  "enunciado_base": "Resumo em uma frase clara do que a questão pede.",

  "classificacao": {
    "area": "MT",
    "competencia": 5,
    "topico": "Título canônico da competência conforme Matriz INEP",
    "habilidade": "H21",
    "habilidades_secundarias": ["H20"],
    "objetos_conhecimento": [
      "Objeto curricular específico 1",
      "Objeto curricular específico 2"
    ],
    "eixo_cognitivo": "SP"
  },

  "dificuldade_estimada": {
    "nivel": "medio",
    "justificativa": "A questão exige integração de dois conceitos (X e Y) e resolução em 3 etapas, com vocabulário técnico moderado.",
    "habilidades_prerequisito": [
      "MT|H19",
      "MT|H15"
    ]
  },

  "niveis_ajuda": {
    "nivel_1_intuitivo": "...",
    "nivel_2_conceitual": "...",
    "nivel_3_estrategia": "...",
    "nivel_4_passo_a_passo": "...",
    "nivel_5_formalizacao": "..."
  },

  "alternativas": {
    "A": {"texto": "...", "correta": false, "feedback_erro": "..."},
    "B": {"texto": "...", "correta": false, "feedback_erro": "..."},
    "C": {"texto": "...", "correta": false, "feedback_erro": "..."},
    "D": {"texto": "...", "correta": false, "feedback_erro": "..."},
    "E": {"texto": "...", "correta": true,  "feedback_sucesso": "Parabéns! ..."}
  }
}
💬 User Prompt (acompanha cada imagem de questão)
Analise esta questão do ENEM e gere o JSON pedagógico completo,  incluindo classificação pela Matriz de Referência e diagnóstico de dificuldade.  O id_questao deve ser: {id_questao}
💰 Cobertura atual: Por limitações de recursos, foram geradas ajudas por IA para aproximadamente 250 questões — sendo 185 relativas à aplicação principal P1 · Caderno Verde · 2024 (Dias 1 e 2). Gerar todos os cadernos de todos os anos disponíveis exigiria financiamento adicional. Contribuições e parcerias são bem-vindas via fzampirolli@ufabc.edu.br.
🛠️ Geração 100% automática: Todo o portal — desde o processamento dos PDFs até a geração das páginas HTML — é produzido automaticamente por scripts em Python e Bash. Nenhuma etapa exige intervenção manual para adicionar um novo ano de prova. Atualmente, foram gerados 10 cadernos para 2024 e 8 cadernos para cada ano de 2019 a 2023. Para outros anos, é necessário verificar se os microdados seguem o padrão esperado.

🏗️ Arquitetura do sistema

📥 Ingestão de dados

Microdados do INEP (JSON/CSV) e PDFs oficiais dos cadernos são baixados e organizados em ENEM/<ano>/DADOS/.

🖼️ Extração de questões

pdf2htmlEX converte cada caderno; scripts Python recortam cada questão como imagem PNG em ENEM/<ano>/FIGS/.

🤖 Geração de ajuda IA

As imagens são enviadas à API Claude via script Python. O JSON de retorno é salvo em FIGS/ ao lado de cada questão.

📊 Cálculo TRI

Scripts R utilizam o pacote ltm para estimar os parâmetros a, b, c via máxima verossimilhança marginal a partir dos microdados.

🌐 Geração do portal

Scripts Python (_08_, _09_) geram automaticamente todos os HTMLs do portal, sem dependências de CMS ou frameworks externos.

🔐 Área restrita

Firebase (Realtime Database) provê autenticação e persistência apenas para o painel Admin de edição das ajudas por IA — o restante é estático.

📂 Código aberto (AGPLv3): O repositório completo, incluindo todos os scripts de processamento e geração, será disponibilizado publicamente no GitHub após a publicação dos artigos científicos que descrevem este método de ensino. Acompanhe em:
🐙 github.com/fzampirolli/ENEM2

📦 Stack tecnológico

  • Python 3.x — processamento, geração HTML, chamadas à API
  • R + ltm — estimação dos parâmetros TRI (modelo 3PL)
  • pdf2htmlEX — conversão de PDFs para HTML/imagens
  • Claude API (Anthropic) — geração das ajudas pedagógicas por visão computacional
  • Firebase Realtime Database — persistência das edições de ajuda (área Admin)
  • HTML/CSS/JS puros — portal estático, sem frameworks de frontend
🤖
Análise interativa gerada por IA Explore estas telas com o NotebookLM — faça perguntas, peça resumos e aprofunde qualquer detalhe.
Abrir no NotebookLM ↗

📚 Referências Acadêmicas e Fontes