Tipos de questao
| Tipo | Auto-correcao | Casos de uso |
|---|---|---|
| multiple_choice | Sim | Conhecimento factual, conceitos |
| true_false | Sim | Verificacao rapida |
| fill_blank | Sim (normalizacao) | Vocabulario, formulas |
| matching | Sim | Associacoes (palavra-definicao) |
| ordering | Sim | Sequencia logica/cronologica |
| numeric | Sim (com tolerance) | Calculos matematicos/fisicos |
| short_answer | Sim (normalizacao + sinonimos) | Respostas curtas |
| essay | Manual (ou LLM opcional) | Redacao, dissertacao |
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 rastreia em background:
tabSwitchCount— quantas vezes aluno saiu da abacopyPasteCount— eventos paste detectadosblurEvents— viewport bluravgTimePerQuestionSec— tempo medio por questaoflagged: boolean— true se algum sinal exceder threshold
Gradebook exibe icone ShieldAlert + tooltip "Tab switches: 8, time per question: 1.2s avg". Professor decide se anula ou ignora.
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
- Integridade academica passive (sem proctoring intrusivo)
O que Studeia NAO faz (ainda):
- Proctoring com webcam/microfone (privacy concerns)
- Lockdown browser
- IP whitelist por quiz
- Question pooling avancado (Canvas Quizzes 2.0 tem isso melhor)
- Adaptive testing (CAT) — roadmap