Pular para o conteúdo
Studeia Docs

Quiz Engine: configuracao, integridade e analytics psicometricas

Quiz engine: 12 tipos de questão, maxAttempts, time limit, shuffle, lockdown browser, IP whitelist, question pooling, scoring policies e analytics psicométricos (Cronbach alpha, point-biserial).

2026-05-31 10 min
Resposta curta

Quiz Engine do Studeia: 12 tipos de questao (10 auto-corrigidos). Configuracao com maxAttempts, timeLimit, shuffle, accessCode, IP whitelist, lockdown Safe Exam Browser/StudeiaMobile, question pooling do banco, scoringPolicy e modos de release. Contadores de integridade (tab switch, copy/paste, blur, tempo). Analytics psicometricas (Cronbach alpha, point-biserial, item difficulty, distractor analysis). Question bank reusavel.

Tipos de questao

12 tipos no total — 10 auto-corrigidos, essay manual/LLM, calculated como tipo avancado de formula:

TipoAuto-correcaoCasos de uso
multiple_choiceSimConhecimento factual, conceitos
true_falseSimVerificacao rapida
multiple_selectSimMultiplas respostas corretas
fill_blankSim (normalizacao)Vocabulario, formulas
matchingSimAssociacoes (palavra-definicao)
orderingSimSequencia logica/cronologica
numericSim (com tolerance)Calculos matematicos/fisicos
short_answerSim (normalizacao + sinonimos)Respostas curtas
clozeSimMultiplas lacunas num mesmo texto
hotspotSimClicar na regiao de uma imagem
essayManual (ou LLM opcional)Redacao, dissertacao
calculatedAvancado (baseado em formula)Problemas numericos parametrizados

Configuracao do quiz

QuizConfiguration em content JSON:

{
  "maxAttempts": 3,
  "timeLimitMinutes": 30,
  "shuffleQuestions": true,
  "shuffleOptions": true,
  "accessCode": "ENEM2026",
  "scoringPolicy": "highest",  // highest | latest | average
  "reviewMode": "after_submit",  // after_submit | after_due_date | never
  "passingScore": 70,
  "showResultsToStudent": true,
  "allowGoBack": false  // se false, aluno nao volta para questoes anteriores
}

Fluxo de submissao

POST /api/courses/[courseId]/lessons/[lessonId]/quiz/start
  ↓
- Valida matricula + lesson availability (checkLessonAvailability)
- Valida maxAttempts nao excedido
- Valida accessCode se configurado
- Cria QuizAttempt com optionOrders (shuffles persistidos)
- Retorna questoes SEM correctIndex (regra critica 66)
  ↓
Aluno responde (cliente envia tab switch events em background)
  ↓
POST /api/courses/[courseId]/lessons/[lessonId]/quiz/submit
  ↓
- remapStudentAnswer (revere shuffle via optionOrders)
- Auto-correcao por tipo
- Calcula score
- Cria/atualiza LessonCompletion (scoringPolicy decide)
- Dispara QuizEvaluationService:
  - Atualiza ConceptMastery por concepts[] da questao
  - Detecta misconceptions (Haiku, ~$0.001)
- Cria Grade no gradebook (se GradeItem associada)
- Dispara automacao quiz_submitted
- Dispara handleGamificationEvent (XP, badges, contests)

Integridade academica

QuizAttempt persiste:

  • tabSwitchCount — quantas vezes o aluno saiu da aba
  • copyPasteCount — tentativas de copy/paste/cut detectadas
  • blurCount — eventos de blur da janela
  • timeSpentSec — tempo total (tempo medio por questao e derivado deste)
  • ipAddress, userAgent
  • flagged / flagReason — true quando algum sinal excede o limite configurado

Controles configuraveis em QuizConfiguration: accessCode, ipWhitelist (match exato, validado server-side no quiz/start), requireLockdownBrowser (Safe Exam Browser ou o app StudeiaMobile), requireFullscreen, preventTabSwitch com maxTabSwitches, e disableCopyPaste.

Gradebook exibe icone ShieldAlert + tooltip com o motivo do flag. Professor decide se anula ou ignora.

Question pooling (banco de questoes)

Um quiz pode sortear um subconjunto aleatorio de um ou mais bancos: useQuestionPool, questionPoolBankIds, questionPoolCount e questionPoolFilters (dificuldade, tags, tipos). Cada aluno recebe um conjunto diferente, selecionado no servidor — respostas corretas nunca vao ao cliente antes do submit.

Analytics psicometricas

/api/institution/courses/[id]/lessons/[lid]/quiz-analytics retorna:

Item difficulty (p-value)

difficulty = total_corretas / total_tentativas
  • < 0.3: muito dificil (rever questao)
  • 0.3-0.7: ideal
  • 0.85: muito facil

Point-biserial discrimination

Correlacao entre acertar item e score total. Identifica questoes que NAO discriminam bons de maus alunos.

  • 0.4: excelente

  • 0.2-0.4: aceitavel
  • < 0.2: ruim (remove/reformule)

Distractor analysis (MC e TF)

% de alunos que escolheram cada alternativa errada. Pista de misconceptions comuns:

Q: "Capital da Australia?"
  A) Sydney (40% — misconception popular)  ← FLAG
  B) Canberra (45% — correta)
  C) Melbourne (10%)
  D) Brisbane (5%)

Cronbach's alpha (consistencia interna)

Mede se as questoes do quiz estao medindo o mesmo construto.

  • 0.7: aceitavel

  • 0.6-0.7: questionavel
  • < 0.6: redesenhar quiz

Requer ≥ 30 tentativas para confiabilidade estatistica.

Score distribution

10 buckets de 0-100%. Ajuda detectar quizzes com ceiling/floor effect.

Question bank

QuestionBank reutiliza questoes em multiplos quizzes:

POST /api/institution/question-banks
POST /api/institution/question-banks/[id]/items

Quiz editor tem picker que filtra por banco, tipo, dificuldade, tags. Import seleciona N questoes aleatorias do banco.

Exporters:

  • GIFT format (compativel Moodle, Canvas, Blackboard)
  • CSV (para edicao em planilha)

Question bank pode ser ingerido no RAG para o tutor IA tambem acessar:

POST /api/institution/question-banks/[id]/rag-ingest

Limites e quotas

  • Maximo 200 questoes por quiz (UX)
  • Maximo 1000 questoes por question bank (performance)
  • Time limit minimo 1 minuto, maximo 360 minutos (6h)
  • Max attempts: 1-99 ou null (ilimitado)

Honestidade tecnica

O que Studeia faz bem:

  • Multi-provider IA para misconception detection
  • Analytics psicometricas em UI (raros LMS oferecem)
  • Question bank com RAG ingestion
  • Contadores de integridade passive (tab switch, copy/paste, blur, tempo)
  • Lockdown via Safe Exam Browser / StudeiaMobile
  • IP whitelist por quiz + accessCode
  • Question pooling a partir do banco

O que Studeia NAO faz (ainda):

  • Proctoring com webcam/microfone (use Examity/ProctorU via LTI)
  • Adaptive testing (CAT) — roadmap
  • Auto-correcao de essay e LLM-assistida e opcional (nao um corretor garantido)

Veja tambem

FAQ

Quantos tipos de questao Studeia suporta?

12 tipos: multiple_choice, true_false, multiple_select, fill_blank, matching (pares), ordering (sequencia), numeric (com tolerancia), short_answer (com normalizacao), cloze, hotspot, essay, calculated. 10 sao auto-corrigidos; essay e manual ou via LLM; calculated e um tipo avancado baseado em formula.

Como detectar copia/cola em quiz?

Integridade academica built-in: tab switch (QuizAttempt.tabSwitchCount), tentativas de copy/paste (copyPasteCount), eventos de blur da janela (blurCount), tempo total e anomalias de tempo, IP e user-agent. Opcional: lockdown via Safe Exam Browser / app StudeiaMobile, IP whitelist por quiz e accessCode. Flags exibidos no gradebook com icone ShieldAlert + tooltip explicativo.

Como evitar que alunos compartilhem respostas?

Combine varias estrategias: shuffleQuestions=true (ordem diferente por aluno), shuffleOptions=true (alternativas embaralhadas), accessCode (codigo que o professor da no horario do quiz), timeLimitMinutes (auto-submit ao expirar), maxAttempts=1 (1 tentativa unica). Questoes randomizadas via question bank com tags.

Que analytics o Studeia oferece para quiz?

Analytics psicometricas: item difficulty (% acerto), point-biserial discrimination (correlacao item-total), distractor analysis (qual alternativa errada e mais popular = pista de misconception), Cronbach's alpha (consistencia interna), score distribution (10 buckets), flags para questoes problematicas. Comparable ao que Canvas Quizzes oferece + algumas extensoes.

Quiz tem analise individual por aluno?

Sim. QuizAttempt grava cada tentativa com timestamp, ordem embaralhada de questoes/opcoes, answers, score raw e final, timeSpent total e contadores de integridade. Aluno ve historico em /grades/. Professor ve detail em /institution/courses/[id]/lessons/[lid]/attempts. O tempo medio por questao e derivado de tempo total ÷ nº de questoes.

Veja tambem

Quiz Engine: configuracao, integridade e analytics psicometricas