Saltar al contenido
Studeia Docs
AI-assisted translation — last updated 2026-05-31. For original (pt-BR or en-US), use the language switcher.

Quiz Engine: configuración, integridad y analytics psicométricos

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

Por Equipo Studeia 2026-05-31 10 min
Resposta curta

El Quiz Engine de Studeia cubre desde la evaluación simple hasta el examen de alto riesgo: 12 tipos de pregunta (10 con corrección automática), control de intentos, tiempo, mezcla de preguntas, código de acceso, banco de preguntas reutilizable y señales de integridad (cambio de pestaña, copy/paste, tiempo). También incluye analytics psicométricos (alfa de Cronbach, discriminación, dificultad del ítem) para que puedas evaluar con justicia y mejorar el examen basándote en datos.

Tipos de pregunta

12 tipos en total — 10 auto-corregidos, essay manual/LLM, calculated como tipo avanzado de fórmula:

TipoAuto-correcciónCasos de uso
multiple_choiceConocimiento factual, conceptos
true_falseVerificación rápida
multiple_selectMúltiples respuestas correctas
fill_blankSí (normalización)Vocabulario, fórmulas
matchingAsociaciones (palabra-definición)
orderingSecuencia lógica/cronológica
numericSí (con tolerance)Cálculos matemáticos/físicos
short_answerSí (normalización + sinónimos)Respuestas cortas
clozeMúltiples espacios en un mismo texto
hotspotHacer clic en la región de una imagen
essayManual (o LLM opcional)Redacción, disertación
calculatedAvanzado (basado en fórmula)Problemas numéricos parametrizados

Configuración del quiz

QuizConfiguration en 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  // si false, el estudiante no puede volver a preguntas anteriores
}

Flujo de envío

POST /api/courses/[courseId]/lessons/[lessonId]/quiz/start
  ↓
- Valida matrícula + lesson availability (checkLessonAvailability)
- Valida que maxAttempts no haya sido excedido
- Valida accessCode si está configurado
- Crea QuizAttempt con optionOrders (shuffles persistidos)
- Retorna preguntas SIN correctIndex (regla crítica 66)
  ↓
El estudiante responde (el cliente envía eventos de tab switch en segundo plano)
  ↓
POST /api/courses/[courseId]/lessons/[lessonId]/quiz/submit
  ↓
- remapStudentAnswer (revierte shuffle vía optionOrders)
- Auto-corrección por tipo
- Calcula score
- Crea/actualiza LessonCompletion (scoringPolicy decide)
- Ejecuta QuizEvaluationService:
  - Actualiza ConceptMastery por concepts[] de la pregunta
  - Detecta misconceptions (Haiku, ~$0.001)
- Crea Grade en el gradebook (si GradeItem asociada)
- Dispara automatización quiz_submitted
- Dispara handleGamificationEvent (XP, badges, contests)

Integridad académica

QuizAttempt persiste:

  • tabSwitchCount — cuántas veces el estudiante salió de la pestaña
  • copyPasteCount — intentos de copy/paste/cut detectados
  • blurCount — eventos de blur de la ventana
  • timeSpentSec — tiempo total (el tiempo promedio por pregunta se deriva de este)
  • ipAddress, userAgent
  • flagged / flagReason — true cuando alguna señal supera el límite configurado

Controles configurables en QuizConfiguration: accessCode, ipWhitelist (coincidencia exacta, validado server-side en quiz/start), requireLockdownBrowser (Safe Exam Browser o la app StudeiaMobile), requireFullscreen, preventTabSwitch con maxTabSwitches, y disableCopyPaste.

El gradebook muestra el ícono ShieldAlert + tooltip con el motivo del flag. El profesor decide si anula o ignora.

Question pooling (banco de preguntas)

Un quiz puede seleccionar aleatoriamente un subconjunto de uno o más bancos: useQuestionPool, questionPoolBankIds, questionPoolCount y questionPoolFilters (dificultad, etiquetas, tipos). Cada estudiante recibe un conjunto diferente, seleccionado en el servidor — las respuestas correctas nunca se envían al cliente antes del envío.

Analytics psicométricos

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

Dificultad del ítem (p-value)

difficulty = total_correctas / total_intentos
  • < 0.3: muy difícil (revisar pregunta)
  • 0.3-0.7: ideal
  • 0.85: muy fácil

Discriminación point-biserial

Correlación entre acertar el ítem y el score total. Identifica preguntas que NO discriminan entre buenos y malos estudiantes.

  • 0.4: excelente

  • 0.2-0.4: aceptable
  • < 0.2: malo (eliminar/reformular)

Análisis de distractores (MC y TF)

% de estudiantes que eligieron cada alternativa incorrecta. Pista de misconceptions comunes:

P: "¿Capital de Australia?"
  A) Sydney (40% — misconception popular)  ← FLAG
  B) Canberra (45% — correcta)
  C) Melbourne (10%)
  D) Brisbane (5%)

Alfa de Cronbach (consistencia interna)

Mide si las preguntas del quiz están midiendo el mismo constructo.

  • 0.7: aceptable

  • 0.6-0.7: cuestionable
  • < 0.6: rediseñar el quiz

Requiere ≥ 30 intentos para confiabilidad estadística.

Distribución de puntuaciones

10 buckets de 0-100%. Ayuda a detectar quizzes con efecto techo/suelo.

Question bank

QuestionBank reutiliza preguntas en múltiples quizzes:

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

El editor de quizzes tiene un picker que filtra por banco, tipo, dificultad, etiquetas. La importación selecciona N preguntas aleatorias del banco.

Exportadores:

  • Formato GIFT (compatible con Moodle, Canvas, Blackboard)
  • CSV (para edición en hoja de cálculo)

El question bank puede ser incorporado al RAG para que el tutor IA también pueda acceder:

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

Límites y cuotas

  • Máximo 200 preguntas por quiz (UX)
  • Máximo 1000 preguntas por question bank (rendimiento)
  • Tiempo límite mínimo 1 minuto, máximo 360 minutos (6h)
  • Max attempts: 1-99 o null (ilimitado)

Honestidad técnica

Lo que Studeia hace bien:

  • IA multi-proveedor para detección de misconceptions
  • Analytics psicométricos en la UI (pocos LMS lo ofrecen)
  • Question bank con ingesta RAG
  • Contadores de integridad pasivos (tab switch, copy/paste, blur, tiempo)
  • Lockdown vía Safe Exam Browser / StudeiaMobile
  • IP whitelist por quiz + accessCode
  • Question pooling desde el banco

Lo que Studeia NO hace (todavía):

  • Proctoring con webcam/micrófono (usa Examity/ProctorU vía LTI)
  • Adaptive testing (CAT) — roadmap
  • La auto-corrección de essay vía LLM es opcional (no un corrector garantizado)

Ver también

FAQ

¿Cuántos tipos de pregunta soporta Studeia?

12 tipos: multiple_choice, true_false, multiple_select, fill_blank, matching (pares), ordering (secuencia), numeric (con tolerancia), short_answer (con normalización), cloze, hotspot, essay, calculated. 10 son auto-corregidos; essay es manual o vía LLM; calculated es un tipo avanzado basado en fórmula.

¿Cómo detectar copia/pegado en un quiz?

Integridad académica integrada: cambio de pestaña (QuizAttempt.tabSwitchCount), intentos de copy/paste (copyPasteCount), eventos de blur de la ventana (blurCount), tiempo total y anomalías de tiempo, IP y user-agent. Opcional: lockdown vía Safe Exam Browser / app StudeiaMobile, IP whitelist por quiz y accessCode. Los flags se muestran en el gradebook con el ícono ShieldAlert + tooltip explicativo.

¿Cómo evitar que los estudiantes compartan respuestas?

Combina varias estrategias: shuffleQuestions=true (orden diferente por estudiante), shuffleOptions=true (alternativas mezcladas), accessCode (código que el profesor proporciona en el horario del quiz), timeLimitMinutes (auto-submit al expirar), maxAttempts=1 (1 intento único). Preguntas aleatorizadas vía question bank con etiquetas.

¿Qué analytics ofrece Studeia para los quizzes?

Analytics psicométricos: dificultad del ítem (% de acierto), discriminación point-biserial (correlación ítem-total), análisis de distractores (qué alternativa incorrecta es más popular = pista de misconception), alfa de Cronbach (consistencia interna), distribución de puntuaciones (10 buckets), flags para ítems problemáticos. Comparable a lo que ofrece Canvas Quizzes + algunas extensiones.

¿El quiz tiene análisis individual por estudiante?

Sí. QuizAttempt registra cada intento con timestamp, orden mezclado de preguntas/opciones, respuestas, score raw y final, timeSpent total y contadores de integridad. El estudiante ve el historial en /grades/. El profesor ve el detalle en /institution/courses/[id]/lessons/[lid]/attempts. El tiempo promedio por pregunta se deriva del tiempo total ÷ nº de preguntas.

Veja tambem

Quiz Engine: configuración, integridad y analytics psicométricos