workspace/projects/gamilit/docs/00-vision-general/GUIA-PRUEBAS-MODULO1-Respuestas-Ejemplo.md
rckrdmrd ea1879f4ad feat: Initial workspace structure with multi-level Git configuration
- Configure workspace Git repository with comprehensive .gitignore
- Add Odoo as submodule for ERP reference code
- Include documentation: SETUP.md, GIT-STRUCTURE.md
- Add gitignore templates for projects (backend, frontend, database)
- Structure supports independent repos per project/subproject level

Workspace includes:
- core/ - Reusable patterns, modules, orchestration system
- projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.)
- knowledge-base/ - Reference code and patterns (includes Odoo submodule)
- devtools/ - Development tools and templates
- customers/ - Client implementations template

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 10:44:23 -06:00

1339 lines
47 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GUÍA DE PRUEBAS - MÓDULO 1: COMPRENSIÓN LITERAL
## Ejemplos de Respuestas para Testing QA
**Fecha:** 2025-11-23
**Versión:** 1.0
**Módulo:** MOD-01-LITERAL - Comprensión Literal
**Autor:** Architecture-Analyst
**Fuente:** `apps/database/seeds/prod/educational_content/02-exercises-module1.sql`
---
## 📋 ÍNDICE
1. [Ejercicio 1.1: Crucigrama Científico](#ejercicio-11-crucigrama-científico)
2. [Ejercicio 1.2: Línea de Tiempo](#ejercicio-12-línea-de-tiempo)
3. [Ejercicio 1.3: Completar Espacios en Blanco](#ejercicio-13-completar-espacios-en-blanco)
4. [Ejercicio 1.4: Verdadero o Falso](#ejercicio-14-verdadero-o-falso)
5. [Ejercicio 1.5: Sopa de Letras (BONUS)](#ejercicio-15-sopa-de-letras-bonus)
6. [Casos de Uso](#casos-de-uso)
---
## 🎯 PROPÓSITO DE ESTA GUÍA
Esta guía proporciona **ejemplos detallados de respuestas** para cada ejercicio del Módulo 1, clasificadas en tres niveles de calidad:
- **✅ EXCELENTE (80-100 puntos):** Respuestas completas, precisas y que demuestran comprensión profunda
- **⚠️ ACEPTABLE (50-79 puntos):** Respuestas parcialmente correctas con algunos errores menores
- **❌ INCORRECTA (0-49 puntos):** Respuestas con errores significativos o información incorrecta
**Audiencia:** QA testers, desarrolladores frontend/backend, diseñadores pedagógicos, demos
---
## EJERCICIO 1.1: CRUCIGRAMA CIENTÍFICO
**Tipo:** `crucigrama`
**Dificultad:** Beginner
**Tiempo estimado:** 15 minutos
**Puntos máximos:** 100
**Puntos de aprobación:** 70
### 📊 Configuración del Ejercicio
```json
{
"gridSize": {"rows": 15, "cols": 15},
"autoCheck": true,
"showProgress": true,
"caseSensitive": false,
"allowSpaces": false
}
```
### 🎯 Claves del Crucigrama
#### Pistas Horizontales
| # | Pista | Respuesta | Longitud | Inicio |
|---|-------|-----------|----------|--------|
| 1 | Universidad donde estudió | SORBONA | 7 | (4,3) |
| 2 | Premio recibido en 1903 y 1911 | NOBEL | 5 | (6,3) |
| 3 | Fenómeno de emisión espontánea de radiación | RADIOACTIVIDAD | 14 | (8,1) |
#### Pistas Verticales
| # | Pista | Respuesta | Longitud | Inicio |
|---|-------|-----------|----------|--------|
| 4 | Elemento químico nombrado en honor a Polonia | POLONIO | 7 | (3,4) |
| 5 | Elemento químico radiactivo descubierto | RADIO | 5 | (8,1) |
| 6 | Apellido de Marie | CURIE | 5 | (8,7) |
### ✅ RESPUESTA EXCELENTE (95-100 puntos)
**Crucigrama completado correctamente:**
- ✓ Todas las palabras correctas
- ✓ Ortografía perfecta (sin acentos, mayúsculas)
- ✓ Todas las intersecciones coinciden
- ✓ Completado en tiempo razonable (< 15 minutos)
**Ejemplo de respuesta:**
```
Horizontal 1: SORBONA
Horizontal 2: NOBEL
Horizontal 3: RADIOACTIVIDAD
Vertical 4: POLONIO
Vertical 5: RADIO
Vertical 6: CURIE
```
**Scoring:**
- 6/6 palabras correctas = 100 puntos
- Sin uso de comodines = +0 bonificación
- Tiempo < 10 min = +0 bonificación (no implementado)
**Feedback del sistema:**
> "¡Excelente! Has completado el crucigrama correctamente. Demuestra comprensión sólida del vocabulario científico relacionado con Marie Curie. ✓ 100/100 puntos."
---
### ⚠️ RESPUESTA ACEPTABLE (65-79 puntos)
**Crucigrama con 1-2 errores menores:**
- 4-5 palabras correctas
- 1-2 palabras incorrectas o faltantes
- Puede haber usado 1 comodín
**Ejemplo de respuesta parcial:**
```
Horizontal 1: SORBONA ✓
Horizontal 2: NOVEL ✗ (error de ortografía)
Horizontal 3: RADIOACTIVIDAD ✓
Vertical 4: POLONIO ✓
Vertical 5: RADIO ✓
Vertical 6: (vacío) ✗
```
**Errores comunes:**
- "NOVEL" en lugar de "NOBEL" (error de ortografía)
- "POLONIA" en lugar de "POLONIO" (confusión entre país y elemento)
- Dejar espacios en blanco por no usar el texto de referencia
- Escribir con acentos: "RADIACIÓN" en lugar de "RADIACION"
**Scoring:**
- 4/6 palabras correctas = 67 puntos
- Uso de 1 comodín "Pista" (-15 ML Coins)
- Penalización por errores de ortografía: -10 puntos
**Feedback del sistema:**
> "Buen intento. Algunas respuestas necesitan corrección. Revisa la ortografía del Premio que Marie ganó dos veces. ⚠️ 67/100 puntos."
---
### ❌ RESPUESTA INCORRECTA (0-49 puntos)
**Crucigrama con múltiples errores:**
- 0-3 palabras correctas
- Múltiples errores de ortografía
- Palabras que no coinciden con las pistas
- Puede haber intentado adivinar sin consultar texto
**Ejemplo de respuesta con errores:**
```
Horizontal 1: PARIS ✗ (confusión: estudió en París, pero universidad era Sorbona)
Horizontal 2: PREMIOS ✗ (demasiadas letras, no coincide)
Horizontal 3: RADIACION ✗ (5 letras faltantes)
Vertical 4: POLONIA ✗ (país, no elemento químico)
Vertical 5: (vacío) ✗
Vertical 6: MARIE ✗ (nombre, no apellido)
```
**Errores críticos:**
- Confusión entre datos relacionados (París vs. Sorbona, Polonia vs. Polonio)
- No verificar longitud de palabras (PREMIOS tiene 7 letras, necesita 5)
- No usar intersecciones para validar (si "MARIE" cruza con "NOBEL", la "I" no coincide)
- Dejar múltiples espacios vacíos
**Scoring:**
- 0/6 palabras correctas = 0 puntos
- Uso de 2 comodines "Pista" (-30 ML Coins)
- Múltiples intentos fallidos: -0 puntos (primeros 3 intentos sin penalización)
**Feedback del sistema:**
> "Necesitas revisar el texto base más cuidadosamente. Recuerda: todas las respuestas están explícitamente mencionadas en la biografía de Marie Curie. Intenta usar las pistas disponibles. ❌ 0/100 puntos. Te quedan 2 intentos."
---
### 🔑 Keywords para Validación Automática
El validador backend verifica:
- Exactitud de cada palabra (case-insensitive)
- Longitud correcta
- Posición en grid correcta
- Intersecciones válidas (letras coincidentes)
```javascript
// Ejemplo de validación
const correctAnswers = {
"h1": "SORBONA",
"h2": "NOBEL",
"h3": "RADIOACTIVIDAD",
"v1": "POLONIO",
"v2": "RADIO",
"v3": "CURIE"
};
```
---
## EJERCICIO 1.2: LÍNEA DE TIEMPO
**Tipo:** `linea_tiempo`
**Dificultad:** Beginner
**Tiempo estimado:** 12 minutos
**Puntos máximos:** 100
**Puntos de aprobación:** 70
### 📊 Configuración del Ejercicio
```json
{
"allowReordering": true,
"showYears": true,
"visualStyle": "horizontal",
"dragAndDrop": true,
"showFeedback": "immediate"
}
```
### 🎯 Eventos a Ordenar
| ID | Año | Evento | Categoría |
|----|-----|--------|-----------|
| event-1 | 1867 | Nace Maria Sklodowska en Varsovia, Polonia | Personal |
| event-2 | 1891 | Se traslada a París para estudiar en la Sorbona | Educación |
| event-3 | 1895 | Se casa con Pierre Curie | Personal |
| event-4 | 1898 | Descubre el polonio y el radio | Descubrimiento |
| event-5 | 1903 | Recibe su primer Premio Nobel de Física | Reconocimiento |
| event-6 | 1911 | Recibe su segundo Premio Nobel, en Química | Reconocimiento |
| event-7 | 1934 | Fallece debido a anemia aplásica | Personal |
### ✅ RESPUESTA EXCELENTE (100 puntos)
**Orden cronológico perfecto:**
```
[event-1] → [event-2] → [event-3] → [event-4] → [event-5] → [event-6] → [event-7]
1867 1891 1895 1898 1903 1911 1934
Nacimiento → París → Matrimonio → Descubrimientos → Nobel Física → Nobel Química → Fallece
```
**Justificación del orden:**
1. **1867:** Nacimiento (punto de inicio lógico)
2. **1891:** Traslado a París (24 años - juventud)
3. **1895:** Matrimonio con Pierre (28 años - vida personal)
4. **1898:** Descubrimientos del polonio y radio (3 años después del matrimonio)
5. **1903:** Primer Nobel de Física (por descubrimientos de 1898)
6. **1911:** Segundo Nobel de Química (8 años después del primero, 5 años después de muerte de Pierre)
7. **1934:** Fallecimiento (67 años - fin de vida)
**Scoring:**
- 7/7 eventos en orden correcto = 100 puntos
- Primer intento = +0 bonificación
- Sin uso de comodines = +0 bonificación
**Feedback del sistema:**
> "¡Perfecto! Has ordenado todos los eventos cronológicamente. Demuestras excelente comprensión de la secuencia temporal de la vida de Marie Curie. ✓ 100/100 puntos."
---
### ⚠️ RESPUESTA ACEPTABLE (65-79 puntos)
**Orden con 1-2 inversiones menores:**
```
[event-1] → [event-2] → [event-4] → [event-3] → [event-5] → [event-6] → [event-7]
1867 1891 1898 1895 1903 1911 1934
↑____________↑
(inversión: 1895 y 1898 intercambiados)
```
**Errores comunes:**
- **Inversión 1895 1898:** Confundir matrimonio (1895) con descubrimientos (1898)
- **Inversión 1903 1911:** Confundir orden de los dos premios Nobel
- No recordar que el matrimonio (1895) precedió los descubrimientos (1898)
**Justificación parcialmente correcta:**
- Inicio y fin correctos (nacimiento 1867, muerte 1934)
- Mayoría de eventos en posición correcta
- Solo 1-2 eventos adyacentes intercambiados
**Scoring:**
- 5/7 eventos correctos = 71 puntos
- Segundo intento (tras feedback) = -0 penalización (primeros 3 intentos sin penalización)
- Uso de 1 pista (-15 ML Coins)
**Feedback del sistema (tras primer intento):**
> "Casi perfecto. Los descubrimientos del polonio y radio ocurrieron DESPUÉS del matrimonio con Pierre. El matrimonio fue en 1895, los descubrimientos en 1898. ⚠️ 71/100 puntos. Intenta de nuevo."
---
### ❌ RESPUESTA INCORRECTA (0-49 puntos)
**Orden con múltiples errores:**
```
[event-7] → [event-1] → [event-5] → [event-2] → [event-6] → [event-3] → [event-4]
1934 1867 1903 1891 1911 1895 1898
↑ (error crítico: muerte primero)
```
**Errores críticos:**
- **Muerte al principio:** Ordenar fallecimiento (1934) antes del nacimiento (1867)
- **Premios Nobel antes de estudios:** Ganar Nobel antes de estudiar en París
- **Descubrimientos antes de formación:** Descubrir elementos antes de educación formal
- **Orden aleatorio:** No seguir ninguna lógica temporal
**Problemas de comprensión:**
- No entender la cronología básica de una biografía (nacimiento formación logros muerte)
- Ignorar las fechas explícitas en las tarjetas
- No usar el contexto lógico (estudios antes de descubrimientos, descubrimientos antes de premios)
**Scoring:**
- 1/7 eventos correctos = 14 puntos
- Tercer intento fallido = fin del ejercicio
- Múltiples comodines usados (-45 ML Coins total)
**Feedback del sistema:**
> "El orden cronológico no es correcto. Recuerda: la historia de una persona sigue una secuencia lógica: nacimiento → estudios → trabajo → logros → muerte. Usa las fechas como guía. ❌ 14/100 puntos. Te queda 1 intento."
**Sugerencia pedagógica:**
> "Tip: Ordena primero los eventos extremos (nacimiento 1867 y muerte 1934), luego completa el medio."
---
### 🔑 Keywords para Validación Automática
```javascript
const correctOrder = ["event-1", "event-2", "event-3", "event-4", "event-5", "event-6", "event-7"];
const yearSequence = [1867, 1891, 1895, 1898, 1903, 1911, 1934];
// Validación
function validateTimeline(userOrder) {
let correctCount = 0;
for (let i = 0; i < userOrder.length; i++) {
if (userOrder[i] === correctOrder[i]) {
correctCount++;
}
}
return (correctCount / correctOrder.length) * 100;
}
```
---
## EJERCICIO 1.3: COMPLETAR ESPACIOS EN BLANCO
**Tipo:** `completar_espacios`
**Dificultad:** Beginner
**Tiempo estimado:** 10 minutos
**Puntos máximos:** 100
**Puntos de aprobación:** 60
### 📊 Configuración del Ejercicio
```json
{
"blankCount": 6,
"allowMultipleAttempts": true,
"showWordBank": true,
"caseSensitive": false
}
```
### 🎯 Texto con Espacios en Blanco
**Texto completo:**
> "Marie Sklodowska nació en **___①___, Polonia**. Su padre **___②___** era profesor de matemáticas y física, mientras que su madre **___③___** dirigía una escuela prestigiosa. La familia valoraba mucho la **___④___** y Marie mostró desde pequeña gran curiosidad por las **___⑤___** y **___⑥___**."
**Banco de palabras:**
`Varsovia`, `Władysław`, `Bronisława`, `educación`, `ciencias`, `Polonia`, `matemáticas`, `física`
### ✅ RESPUESTA EXCELENTE (100 puntos)
**Todos los espacios completados correctamente:**
1. **Varsovia** (ciudad natal)
2. **Władysław** (nombre del padre)
3. **Bronisława** (nombre de la madre)
4. **educación** (valor familiar)
5. **ciencias** / **matemáticas** / **física** (cualquiera de las 3 válida)
6. **ciencias** / **matemáticas** / **física** (cualquiera de las 3 válida, DIFERENTE a espacio 5)
**🔄 ACTUALIZACIÓN 2025-11-23:** Los espacios 5 y 6 ahora aceptan **cualquiera de las 3 opciones** (ciencias, matemáticas, física) con la **restricción de que NO pueden ser la misma palabra**. Esta corrección refleja la simetría lógica del ejercicio.
**Combinaciones válidas para espacios 5 y 6 (6 combinaciones):**
| Espacio 5 | Espacio 6 | Validez | Ejemplo completo |
|-----------|-----------|---------|------------------|
| ciencias | matemáticas | VÁLIDO | "...curiosidad por las **ciencias** y **matemáticas**." |
| ciencias | física | VÁLIDO | "...curiosidad por las **ciencias** y **física**." |
| matemáticas | ciencias | VÁLIDO | "...curiosidad por las **matemáticas** y **ciencias**." |
| matemáticas | física | VÁLIDO | "...curiosidad por las **matemáticas** y **física**." |
| física | ciencias | VÁLIDO | "...curiosidad por las **física** y **ciencias**." |
| física | matemáticas | VÁLIDO | "...curiosidad por las **física** y **matemáticas**." |
**Combinaciones inválidas (redundancias - 3 combinaciones):**
| Espacio 5 | Espacio 6 | Validez | Razón |
|-----------|-----------|---------|-------|
| ciencias | ciencias | INVÁLIDO | Redundancia - no puede repetirse |
| matemáticas | matemáticas | INVÁLIDO | Redundancia - no puede repetirse |
| física | física | INVÁLIDO | Redundancia - no puede repetirse |
**Justificación:**
- Espacio : Contexto "nació en ___, Polonia" ciudad polaca = **Varsovia**
- Espacio : "su padre ___" nombre propio masculino polaco = **Władysław**
- Espacio : "su madre ___" nombre propio femenino polaco = **Bronisława**
- Espacio : "valoraba la ___" concepto abstracto = **educación**
- Espacio : "curiosidad por las ___" **CUALQUIERA** de: ciencias, matemáticas, física
- Espacio : "curiosidad por las ___" **CUALQUIERA** de: ciencias, matemáticas, física (DIFERENTE a espacio 5)
**Justificación pedagógica de la simetría:**
- Marie Curie estudió **matemáticas Y física** en la Sorbona
- Su padre le enseñaba **matemáticas Y física**
- Mostró curiosidad por las **ciencias** (término general que incluye ambas)
- Todas las opciones están **históricamente documentadas**
- Lógicamente, cualquier par de estas palabras es correcto siempre que NO se repitan
**Scoring:**
- 6/6 espacios correctos con cualquier combinación válida = 100 puntos
- Sin uso de comodines = +0 bonificación
- Primer intento = +0 bonificación
**Feedback del sistema:**
> "¡Excelente! Has completado todos los espacios correctamente. Demuestras comprensión precisa de los datos biográficos de Marie Curie. ✓ 100/100 puntos."
---
### ⚠️ RESPUESTA ACEPTABLE (55-75 puntos)
**4-5 espacios correctos, 1-2 errores:**
1. **Varsovia**
2. **Władysław**
3. **Bronisława**
4. **Polonia** (error: usó país en lugar de concepto abstracto)
5. **ciencias**
6. **física**
**Texto resultante con error:**
> "Marie Sklodowska nació en **Varsovia, Polonia**. Su padre **Władysław** era profesor de matemáticas y física, mientras que su madre **Bronisława** dirigía una escuela prestigiosa. La familia valoraba mucho la **Polonia** y Marie mostró desde pequeña gran curiosidad por las **ciencias** y **física**."
>
> ⚠️ Error semántico: "valoraba mucho la Polonia" no tiene sentido lógico
**Errores comunes:**
- **Espacio :** Confundir "educación" con "Polonia" (no considerar contexto semántico)
- **Espacio :** Dejar vacío si ya usó "matemáticas" antes
- **Espacios ②/③:** Confundir nombres del padre y madre (intercambiarlos)
**Scoring:**
- 5/6 espacios correctos = 83 puntos
- 1 error semántico = -10 puntos
- Total: 73 puntos
**Feedback del sistema:**
> "Muy bien, pero hay un error. 'La familia valoraba mucho la Polonia' no es coherente. Piensa en un valor abstracto relacionado con aprendizaje. ⚠️ 73/100 puntos."
---
### ❌ RESPUESTA INCORRECTA (0-49 puntos)
#### Escenario 1: Múltiples errores gramaticales
**0-3 espacios correctos, múltiples errores:**
1. **Polonia** (ya está en el texto "Varsovia, Polonia")
2. **ciencias** (nombre propio esperado, no concepto)
3. **física** (nombre propio femenino esperado)
4. **Varsovia** (ciudad, no concepto abstracto)
5. **educación** (concepto abstracto, no campo académico)
6. **(vacío)** (no completado)
**Texto resultante con múltiples errores:**
> "Marie Sklodowska nació en **Polonia, Polonia**. Su padre **ciencias** era profesor de matemáticas y física, mientras que su madre **física** dirigía una escuela prestigiosa. La familia valoraba mucho la **Varsovia** y Marie mostró desde pequeña gran curiosidad por las **educación** y **___**."
>
> ❌ Múltiples errores gramaticales y semánticos
**Problemas críticos:**
- No considerar contexto gramatical ("su padre ciencias" es incoherente)
- Repetir palabras ya en el texto ("Polonia, Polonia")
- Ignorar género de nombres propios (padre = masculino, madre = femenino)
- No completar todos los espacios
**Scoring:**
- 0/6 espacios correctos = 0 puntos
- Múltiples errores de coherencia = penalización aplicada
- Segundo intento disponible
**Feedback del sistema:**
> "Necesitas revisar el contexto de cada espacio. Observa las pistas gramaticales: 'su padre ___' espera un nombre propio masculino, 'su madre ___' espera un nombre femenino. ❌ 0/100 puntos. Te quedan 2 intentos."
---
#### Escenario 2: Error de redundancia en espacios 5 y 6 (NUEVO 2025-11-23)
**5/6 espacios correctos, pero redundancia:**
1. **Varsovia**
2. **Władysław**
3. **Bronisława**
4. **educación**
5. **matemáticas**
6. **matemáticas** (REDUNDANCIA - no puede repetir espacio 5)
**Texto resultante con redundancia:**
> "Marie Sklodowska nació en **Varsovia, Polonia**. Su padre **Władysław** era profesor de matemáticas y física, mientras que su madre **Bronisława** dirigía una escuela prestigiosa. La familia valoraba mucho la **educación** y Marie mostró desde pequeña gran curiosidad por las **matemáticas** y **matemáticas**."
>
> ❌ Error de redundancia en espacios 5 y 6
**Problema identificado:**
- Espacios 5 y 6 tienen la **misma palabra** ("matemáticas")
- El sistema rechaza redundancias: espacio 5 espacio 6
- Aunque "matemáticas" es válida para ambos espacios, NO pueden usarse simultáneamente
**Scoring:**
- 5/6 espacios correctos base = 83 puntos
- Penalización por redundancia = -50 puntos
- **Score final:** 33 puntos (REPROBADO)
**Feedback del sistema:**
> "Casi perfecto, pero hay un error: los espacios 5 y 6 no pueden tener la misma palabra. Has puesto 'matemáticas' en ambos. Elige dos palabras DIFERENTES del grupo: ciencias, matemáticas, física. ❌ 33/100 puntos. Te quedan 2 intentos."
**Correcciones válidas:**
- Cambiar espacio 6 a "física" "matemáticas + física"
- Cambiar espacio 6 a "ciencias" "matemáticas + ciencias"
- Cambiar espacio 5 a "física" "física + matemáticas"
- Cambiar espacio 5 a "ciencias" "ciencias + matemáticas"
---
#### Escenario 3: Otras redundancias posibles
**Casos de redundancia también inválidos:**
| Caso | Espacio 5 | Espacio 6 | Score | Feedback |
|------|-----------|-----------|-------|----------|
| A | ciencias | ciencias | 33 pts | "Los espacios 5 y 6 no pueden ser 'ciencias + ciencias'" |
| B | física | física | 33 pts | "Los espacios 5 y 6 no pueden ser 'física + física'" |
| C | matemáticas | matemáticas | 33 pts | "Los espacios 5 y 6 no pueden ser 'matemáticas + matemáticas'" |
**Sugerencia pedagógica:**
> "Tip: Clasifica las 8 palabras del banco antes de empezar:\n- Nombres propios masculinos: Władysław\n- Nombres propios femeninos: Bronisława\n- Lugares: Varsovia, Polonia\n- Conceptos: educación, ciencias, matemáticas, física\n\n**IMPORTANTE:** Para espacios 5 y 6, elige DOS palabras DIFERENTES de: ciencias, matemáticas, física."
---
### 🔑 Keywords para Validación Automática
**ACTUALIZADO 2025-11-23:** Espacios 5 y 6 con simetría completa
```javascript
const correctAnswers = {
"1": "Varsovia",
"2": "Władysław",
"3": "Bronisława",
"4": "educación",
"5": "ciencias", // Respuesta principal
"6": "matemáticas" // Respuesta principal
};
const alternatives = {
"5": ["ciencias", "matemáticas", "física"], // Espacio 5 acepta cualquiera de las 3
"6": ["ciencias", "matemáticas", "física"] // Espacio 6 acepta cualquiera de las 3
};
// Validación adicional requerida en backend
function validateCompletarEspacios(userAnswers) {
// Validación básica de cada espacio
const validationResults = {};
for (let id in correctAnswers) {
const userAnswer = userAnswers[id]?.toLowerCase().trim();
const correctAnswer = correctAnswers[id].toLowerCase();
const alternativesList = alternatives[id] || [];
// Verificar si la respuesta es correcta o está en alternativas
const isCorrect = userAnswer === correctAnswer ||
alternativesList.some(alt => alt.toLowerCase() === userAnswer);
validationResults[id] = isCorrect;
}
// Validación especial: espacio 5 ≠ espacio 6 (NO redundancia)
if (userAnswers["5"] && userAnswers["6"]) {
const space5 = userAnswers["5"].toLowerCase().trim();
const space6 = userAnswers["6"].toLowerCase().trim();
if (space5 === space6) {
return {
valid: false,
score: 33, // Penalización por redundancia
error: {
type: "redundancia",
message: `Los espacios 5 y 6 no pueden tener la misma palabra. Has puesto '${space5}' en ambos. Elige dos palabras DIFERENTES del grupo: ciencias, matemáticas, física.`,
espacios: ["5", "6"]
}
};
}
}
// Calcular score sin redundancia
const correctCount = Object.values(validationResults).filter(v => v).length;
const score = (correctCount / 6) * 100;
return {
valid: score >= 60, // Passing score
score: score,
correctCount: correctCount,
totalCount: 6,
validationResults: validationResults
};
}
// Casos de prueba obligatorios (11 casos)
const testCases = {
// Casos válidos (6 combinaciones)
valid: [
{ "5": "ciencias", "6": "matemáticas", expectedScore: 100 },
{ "5": "ciencias", "6": "física", expectedScore: 100 },
{ "5": "matemáticas", "6": "ciencias", expectedScore: 100 },
{ "5": "matemáticas", "6": "física", expectedScore: 100 },
{ "5": "física", "6": "ciencias", expectedScore: 100 },
{ "5": "física", "6": "matemáticas", expectedScore: 100 }
],
// Casos inválidos (5 casos)
invalid: [
{ "5": "ciencias", "6": "ciencias", expectedScore: 33, error: "redundancia" },
{ "5": "matemáticas", "6": "matemáticas", expectedScore: 33, error: "redundancia" },
{ "5": "física", "6": "física", expectedScore: 33, error: "redundancia" },
{ "5": "educación", "6": "matemáticas", expectedScore: 83, error: "espacio_5_incorrecto" },
{ "5": "física", "6": "Polonia", expectedScore: 83, error: "espacio_6_incorrecto" }
]
};
```
**Ejemplo de uso en frontend:**
```typescript
// Componente: CompletarEspaciosExercise.tsx
const handleSubmit = (userAnswers: Record<string, string>) => {
const validation = validateCompletarEspacios(userAnswers);
if (!validation.valid) {
if (validation.error?.type === "redundancia") {
// Mostrar mensaje específico de redundancia
showError(validation.error.message);
} else {
// Mostrar mensaje genérico de respuestas incorrectas
showError(`${validation.correctCount}/6 espacios correctos. Revisa tus respuestas.`);
}
} else {
showSuccess(`¡Excelente! ${validation.score}/100 puntos.`);
}
};
```
---
## EJERCICIO 1.4: VERDADERO O FALSO
**Tipo:** `verdadero_falso`
**Dificultad:** Beginner
**Tiempo estimado:** 12 minutos
**Puntos máximos:** 100
**Puntos de aprobación:** 70
### 📊 Configuración del Ejercicio
```json
{
"statementCount": 10,
"randomizeOrder": false,
"showExplanations": true
}
```
### 🎯 Contexto Histórico
> "Durante su infancia en Polonia, Marie era conocida por su insaciable curiosidad científica. Su padre le enseñó los primeros principios de las matemáticas y la física, mientras su madre la inspiró con su dedicación a la educación."
### 📝 Afirmaciones a Evaluar
| ID | Afirmación | Respuesta | Explicación |
|----|------------|-----------|-------------|
| 1 | Marie mostró curiosidad excepcional por las ciencias desde muy pequeña | VERDADERO | Explícitamente mencionado en el contexto |
| 2 | Su padre era profesor de química solamente | FALSO | Era profesor de matemáticas Y física |
| 3 | Marie nació en Francia | FALSO | Nació en Polonia (Varsovia) |
| 4 | Su familia valoraba mucho la educación | VERDADERO | Explícitamente mencionado |
| 5 | La madre de Marie dirigía una escuela | VERDADERO | Mencionado: "dirigía una escuela prestigiosa" |
| 6 | Marie Curie ganó su primer Nobel a los 20 años | FALSO | Lo ganó en 1903 (~36 años) |
| 7 | El nombre original de Marie era Maria Sklodowska | VERDADERO | Nombre de nacimiento confirmado |
| 8 | Marie fue la primera mujer en ganar un Premio Nobel | VERDADERO | Hecho histórico verificable |
| 9 | Su padre no apoyaba su interés en las ciencias | FALSO | Le enseñó matemáticas y física |
| 10 | Marie estudió en la Universidad de Varsovia | FALSO | Estudió en la Sorbona de París |
### ✅ RESPUESTA EXCELENTE (100 puntos)
**10/10 afirmaciones correctas:**
```javascript
{
"1": true, // ✓ Curiosidad científica (explícito en contexto)
"2": false, // ✓ No solo química, también matemáticas y física
"3": false, // ✓ Nació en Polonia, no Francia
"4": true, // ✓ Familia valoraba educación (explícito)
"5": true, // ✓ Madre dirigía escuela (explícito)
"6": false, // ✓ Nobel en 1903 (36 años), no 20
"7": true, // ✓ Maria Sklodowska es su nombre de nacimiento
"8": true, // ✓ Primera mujer con Nobel (hecho histórico)
"9": false, // ✓ Padre SÍ apoyaba (le enseñó ciencias)
"10": false // ✓ Estudió en Sorbona (París), no Varsovia
}
```
**Justificación por afirmación:**
**Afirmación 1 (VERDADERO):**
- Evidencia textual: "Marie era conocida por su insaciable curiosidad científica"
- Confirmación: Uso de "insaciable" indica excepcionalidad
**Afirmación 2 (FALSO):**
- Evidencia textual: "Su padre le enseñó los primeros principios de las matemáticas y la física"
- Error en la afirmación: Dice "solamente química", pero texto menciona matemáticas Y física
- Palabra clave a detectar: "solamente" (palabra absoluta que requiere verificación estricta)
**Afirmación 3 (FALSO):**
- Conocimiento previo del Módulo 1: Marie nació en Varsovia, Polonia
- Contradicción directa con hechos biográficos conocidos
**Afirmación 4 (VERDADERO):**
- Evidencia textual: "La familia valoraba mucho la educación"
- Confirmación directa en el contexto proporcionado
**Afirmación 5 (VERDADERO):**
- Evidencia textual: "su madre la inspiró con su dedicación a la educación"
- Conocimiento del ejercicio 1.3: "su madre Bronisława dirigía una escuela prestigiosa"
**Afirmación 6 (FALSO):**
- Cálculo: Marie nació en 1867, ganó primer Nobel en 1903 1903-1867 = 36 años
- Error en la afirmación: Dice 20 años, realidad es 36 años
**Afirmación 7 (VERDADERO):**
- Conocimiento biográfico: Maria Sklodowska fue su nombre de nacimiento polaco
- Cambió a "Marie Curie" tras casarse con Pierre Curie
**Afirmación 8 (VERDADERO):**
- Hecho histórico verificable: Marie fue la primera mujer en ganar Premio Nobel (1903, Física)
**Afirmación 9 (FALSO):**
- Evidencia textual: "Su padre le enseñó los primeros principios de las matemáticas y la física"
- Contradice la afirmación: Si le enseñó, claramente apoyaba su interés
**Afirmación 10 (FALSO):**
- Conocimiento del ejercicio 1.2: Marie se trasladó a París en 1891 para estudiar en la Sorbona
- No estudió en universidad de Varsovia (Polonia no permitía mujeres en universidades en esa época)
**Scoring:**
- 10/10 correctas = 100 puntos
- Sin uso de pistas = +0 bonificación
- Primer intento = +0 bonificación
**Feedback del sistema:**
> "¡Perfecto! Has identificado correctamente todas las afirmaciones verdaderas y falsas. Demuestras excelente comprensión de los hechos biográficos explícitos de Marie Curie. ✓ 100/100 puntos."
---
### ⚠️ RESPUESTA ACEPTABLE (65-79 puntos)
**7-8/10 afirmaciones correctas:**
```javascript
{
"1": true, // ✓ Correcto
"2": true, // ✗ ERROR: Marcó verdadero cuando es falso
"3": false, // ✓ Correcto
"4": true, // ✓ Correcto
"5": true, // ✓ Correcto
"6": false, // ✓ Correcto
"7": true, // ✓ Correcto
"8": true, // ✓ Correcto
"9": false, // ✓ Correcto
"10": true // ✗ ERROR: Marcó verdadero cuando es falso
}
```
**Errores comunes:**
**Error en Afirmación 2:**
- **Marcó:** VERDADERO
- **Correcto:** FALSO
- **Causa:** No detectó la palabra "solamente" como palabra absoluta
- **Análisis:** El padre enseñaba matemáticas Y física, no SOLO química
**Error en Afirmación 10:**
- **Marcó:** VERDADERO
- **Correcto:** FALSO
- **Causa:** Confusión entre ciudad de nacimiento (Varsovia) y universidad donde estudió (Sorbona en París)
- **Análisis:** Varsovia fue su ciudad natal, pero estudió en París
**Scoring:**
- 8/10 correctas = 80 puntos
- Uso de 1 pista (-15 ML Coins) = -0 puntos en score
- Total: 80 puntos (pero con -15 ML Coins de economía)
**Feedback del sistema (tras segundo intento):**
> "Muy bien, pero revisa dos afirmaciones. Tip: La afirmación #2 contiene la palabra 'solamente' - verifica si es totalmente precisa. La afirmación #10 sobre Varsovia: ¿fue su universidad o su ciudad natal? ⚠️ 80/100 puntos."
---
### ❌ RESPUESTA INCORRECTA (0-49 puntos)
**0-6/10 afirmaciones correctas:**
```javascript
{
"1": false, // ✗ ERROR (debería ser true)
"2": true, // ✗ ERROR (debería ser false)
"3": true, // ✗ ERROR (debería ser false)
"4": false, // ✗ ERROR (debería ser true)
"5": true, // ✓ Correcto por casualidad
"6": true, // ✗ ERROR (debería ser false)
"7": false, // ✗ ERROR (debería ser true)
"8": false, // ✗ ERROR (debería ser true)
"9": true, // ✗ ERROR (debería ser false)
"10": true // ✗ ERROR (debería ser false)
}
```
**Problemas críticos:**
1. **No leyó el contexto:** Marcó afirmaciones contradiciendo explícitamente el texto proporcionado
2. **Adivinó aleatoriamente:** Patrón inconsistente (no hay lógica en las respuestas)
3. **Confusión de datos básicos:**
- Marcó "nació en Francia" como verdadero (contradice todo el Módulo 1)
- Marcó "padre no apoyaba" como verdadero (contradice "le enseñó matemáticas y física")
4. **No verificó con conocimiento previo:** Ignoró información de ejercicios anteriores del módulo
**Scoring:**
- 1/10 correctas = 10 puntos
- Tercer intento fallido = fin del ejercicio
- Múltiples pistas usadas (-30 ML Coins)
**Feedback del sistema:**
> "Necesitas leer el contexto histórico más cuidadosamente. Muchas respuestas contradicen información explícita del texto. Ejemplo: El texto dice claramente 'Su padre le enseñó matemáticas y física', entonces la afirmación 'Su padre no apoyaba su interés en las ciencias' es FALSA. ❌ 10/100 puntos. Te queda 1 intento."
**Sugerencia pedagógica:**
> "Estrategia recomendada:\n1. Lee el contexto completo ANTES de responder\n2. Para cada afirmación, busca evidencia textual específica\n3. Cuidado con palabras absolutas: 'solamente', 'nunca', 'siempre'\n4. Usa conocimiento previo del Módulo 1 para verificar hechos históricos"
---
### 🔑 Keywords para Validación Automática
```javascript
const correctAnswers = {
"1": true, // Curiosidad científica
"2": false, // No solo química
"3": false, // No nació en Francia
"4": true, // Valoraba educación
"5": true, // Madre dirigía escuela
"6": false, // No a los 20 años
"7": true, // Maria Sklodowska
"8": true, // Primera mujer Nobel
"9": false, // Padre SÍ apoyaba
"10": false // No estudió en Varsovia
};
// Validación estricta: debe coincidir exactamente
function validateTrueFalse(userAnswers) {
let correctCount = 0;
for (let id in correctAnswers) {
if (userAnswers[id] === correctAnswers[id]) {
correctCount++;
}
}
return (correctCount / 10) * 100;
}
```
---
## EJERCICIO 1.5: SOPA DE LETRAS (BONUS)
**Tipo:** `sopa_letras`
**Dificultad:** Beginner
**Tiempo estimado:** 10 minutos
**Tiempo límite:** 10 minutos
**Puntos máximos:** 100
**Puntos de aprobación:** 70
**Nota:** Este es un ejercicio **BONUS** opcional
### 📊 Configuración del Ejercicio
```json
{
"gridSize": {"rows": 10, "cols": 10},
"useStaticGrid": true,
"directions": ["horizontal", "vertical", "diagonal"],
"selectionMode": "click-drag",
"highlightFound": true
}
```
### 🎯 Palabras a Encontrar (10 total)
| # | Palabra | Longitud | Dirección | Inicio | Dificultad |
|---|---------|----------|-----------|--------|------------|
| 1 | MARIE | 5 | Horizontal | (9,4) | Fácil |
| 2 | CURIE | 5 | - | - | Media |
| 3 | POLONIA | 7 | Horizontal-Reverse | (3,8) | Media |
| 4 | NOBEL | 5 | Vertical | (3,0) | Media |
| 5 | RADIO | 5 | - | - | Media |
| 6 | POLONIO | 7 | - | - | Alta |
| 7 | PARIS | 5 | Vertical | (1,1) | Fácil |
| 8 | SORBONA | 7 | - | - | Alta |
| 9 | CIENCIA | 7 | - | - | Media |
| 10 | FÍSICA | 6 | - | - | Media |
### 🗂️ Grid de 10×10
```
0 1 2 3 4 5 6 7 8 9
0 A C I S Í F K A V S
1 É P M V V Ó I A N Y
2 Í A Ü H D C N T M É
3 N R A I N O L O P É
4 O I T E B C I T R D
5 B S I R U N Ó N A Ó
6 E C O R O C Í D D Í
7 L S I L X T M Y I Ü
8 J E O Í Í L P O O Á
9 N P M A R I E E O V
```
### ✅ RESPUESTA EXCELENTE (100 puntos)
**10/10 palabras encontradas en tiempo:**
```javascript
{
"MARIE": {row: 9, col: 4, direction: "horizontal", found: true},
"CURIE": {row: 0, col: 1, direction: "diagonal", found: true},
"POLONIA": {row: 3, col: 8, direction: "horizontal-reverse", found: true},
"NOBEL": {row: 3, col: 0, direction: "vertical", found: true},
"RADIO": {row: 5, col: 3, direction: "vertical", found: true},
"POLONIO": {row: ?, col: ?, direction: "?", found: true},
"PARIS": {row: 1, col: 1, direction: "vertical", found: true},
"SORBONA": {row: ?, col: ?, direction: "?", found: true},
"CIENCIA": {row: ?, col: ?, direction: "?", found: true},
"FÍSICA": {row: 0, col: 5, direction: "vertical-reverse", found: true}
}
```
**Estrategia exitosa observada:**
1. **Palabras largas primero:** POLONIA (7), POLONIO (7), SORBONA (7) son más fáciles de ubicar visualmente
2. **Bordes y esquinas:** MARIE (fila 9), NOBEL (columna 0) están en los bordes
3. **Búsqueda sistemática:** Escanear fila por fila o columna por columna
4. **Uso de primera letra:** Buscar "P" para POLONIA, POLONIO, PARIS; "M" para MARIE
**Tiempo transcurrido:** 8 minutos 23 segundos (dentro del límite de 10 min)
**Scoring:**
- 10/10 palabras encontradas = 100 puntos
- Completado dentro del tiempo límite = +0 bonificación
- Sin uso de comodines = +0 bonificación
- Ejercicio BONUS = no afecta calificación obligatoria del módulo
**Feedback del sistema:**
> "¡Excelente! Has encontrado todas las palabras del vocabulario científico de Marie Curie. Ejercicio BONUS completado. ✓ 100/100 puntos + 100 XP adicional."
---
### ⚠️ RESPUESTA ACEPTABLE (65-79 puntos)
**7-8/10 palabras encontradas:**
```javascript
{
"MARIE": {found: true}, // ✓
"CURIE": {found: false}, // ✗ No encontrada
"POLONIA": {found: true}, // ✓
"NOBEL": {found: true}, // ✓
"RADIO": {found: true}, // ✓
"POLONIO": {found: false},// ✗ No encontrada
"PARIS": {found: true}, // ✓
"SORBONA": {found: false},// ✗ No encontrada
"CIENCIA": {found: true}, // ✓
"FÍSICA": {found: true} // ✓
}
```
**Palabras no encontradas:**
- **CURIE:** Probablemente en diagonal (más difícil de ver)
- **POLONIO:** Palabra larga (7 letras) que puede estar en dirección compleja
- **SORBONA:** Palabra larga (7 letras) que requiere búsqueda cuidadosa
**Tiempo transcurrido:** 9 minutos 45 segundos (casi agotando tiempo límite)
**Scoring:**
- 7/10 palabras encontradas = 70 puntos
- Completado dentro del tiempo límite (apenas) = +0 bonificación
- Uso de 1 comodín "Pista" (-15 ML Coins) para revelar FISICA
**Feedback del sistema:**
> "Buen trabajo. Encontraste 7 de 10 palabras. Tip: Revisa las diagonales cuidadosamente - algunas palabras como CURIE pueden estar en esa dirección. ⚠️ 70/100 puntos."
---
### ❌ RESPUESTA INCORRECTA (0-49 puntos)
**Escenario 1: Tiempo agotado (0-5 palabras encontradas)**
```javascript
{
"MARIE": {found: true}, // ✓ (fácil, fila 9)
"CURIE": {found: false}, // ✗
"POLONIA": {found: false},// ✗
"NOBEL": {found: true}, // ✓ (columna 0)
"RADIO": {found: false}, // ✗
"POLONIO": {found: false},// ✗
"PARIS": {found: true}, // ✓ (columna 1)
"SORBONA": {found: false},// ✗
"CIENCIA": {found: false},// ✗
"FÍSICA": {found: false} // ✗
}
```
**Tiempo transcurrido:** 10 minutos 00 segundos (TIEMPO AGOTADO)
**Problemas observados:**
- **Búsqueda no sistemática:** Buscó aleatoriamente sin método
- **No usó pistas disponibles:** Tenía comodines pero no los usó
- **Falta de práctica visual:** No escaneó eficientemente el grid
**Scoring:**
- 3/10 palabras encontradas = 30 puntos
- Tiempo agotado = fin automático del ejercicio
- No completó ejercicio = calificación parcial
**Feedback del sistema:**
> "Tiempo agotado. Encontraste 3 de 10 palabras. Este ejercicio es BONUS, así que no afecta tu calificación del módulo. Tip: Busca primero palabras largas (POLONIA, POLONIO, SORBONA) y escanea sistemáticamente. ❌ 30/100 puntos."
---
**Escenario 2: Abandonó el ejercicio**
El estudiante puede optar por NO hacer este ejercicio porque es BONUS (opcional).
**Scoring:**
- Ejercicio no iniciado = 0 puntos en este ejercicio
- **No afecta:** Calificación del módulo (es opcional)
- **Pierde:** 100 XP adicional + 20 ML Coins de recompensa
**Feedback del sistema:**
> "No completaste el ejercicio BONUS. Recuerda: los ejercicios BONUS te dan XP y ML Coins adicionales, pero son opcionales. Puedes volver a intentarlo después."
---
### 🔑 Palabras y Posiciones (para Validación)
```javascript
const wordsToFind = [
"MARIE", "CURIE", "POLONIA", "NOBEL", "RADIO",
"POLONIO", "PARIS", "SORBONA", "CIENCIA", "FÍSICA"
];
const wordsPositions = [
{word: "MARIE", direction: "horizontal", startRow: 9, startCol: 4},
{word: "POLONIA", direction: "horizontal-reverse", startRow: 3, startCol: 8},
{word: "NOBEL", direction: "vertical", startRow: 3, startCol: 0},
{word: "PARIS", direction: "vertical", startRow: 1, startCol: 1}
// ... (otras posiciones según grid)
];
// Validación
function validateWordSearch(foundWords) {
const score = (foundWords.length / wordsToFind.length) * 100;
return {
score: score,
foundCount: foundWords.length,
totalCount: wordsToFind.length,
passed: score >= 70
};
}
```
---
## 📊 CASOS DE USO
### 1. Testing QA Manual
**Objetivo:** Verificar que el frontend maneja correctamente las respuestas de los estudiantes
**Procedimiento:**
1. Usar ejemplos de "RESPUESTA EXCELENTE" para verificar scoring perfecto (100 pts)
2. Usar ejemplos de "RESPUESTA ACEPTABLE" para verificar scoring parcial (60-79 pts)
3. Usar ejemplos de "RESPUESTA INCORRECTA" para verificar mensajes de error y límite de intentos
4. Verificar que los feedback messages coincidan con los ejemplos
**Checklist de validación:**
- [ ] Scoring correcto para respuestas perfectas
- [ ] Scoring correcto para respuestas parciales
- [ ] Mensajes de feedback apropiados
- [ ] Límite de 3 intentos funciona correctamente
- [ ] Comodines descuentan ML Coins correctamente
- [ ] Ejercicio BONUS (1.5) es opcional y no afecta calificación del módulo
---
### 2. Testing Backend/API
**Objetivo:** Validar que los endpoints de validación funcionan correctamente
**Endpoint:** `POST /api/v1/student/exercises/{exerciseId}/submit`
**Casos de prueba:**
**Test Case 1.1: Crucigrama - Respuesta perfecta**
```json
{
"exerciseId": "uuid-crucigrama",
"answers": {
"h1": "SORBONA",
"h2": "NOBEL",
"h3": "RADIOACTIVIDAD",
"v1": "POLONIO",
"v2": "RADIO",
"v3": "CURIE"
}
}
```
**Respuesta esperada:**
```json
{
"score": 100,
"passed": true,
"feedback": "¡Excelente! Has completado el crucigrama correctamente...",
"correctAnswers": 6,
"totalAnswers": 6
}
```
**Test Case 1.2: Línea de Tiempo - Orden incorrecto**
```json
{
"exerciseId": "uuid-linea-tiempo",
"answers": {
"order": ["event-1", "event-2", "event-4", "event-3", "event-5", "event-6", "event-7"]
}
}
```
**Respuesta esperada:**
```json
{
"score": 71,
"passed": true,
"feedback": "Casi perfecto. Los descubrimientos del polonio y radio ocurrieron DESPUÉS del matrimonio...",
"correctPositions": 5,
"totalPositions": 7,
"attemptsRemaining": 2
}
```
**Test Case 1.4: Verdadero/Falso - Todas incorrectas**
```json
{
"exerciseId": "uuid-verdadero-falso",
"answers": {
"1": false, "2": true, "3": true, "4": false, "5": false,
"6": true, "7": false, "8": false, "9": true, "10": true
}
}
```
**Respuesta esperada:**
```json
{
"score": 10,
"passed": false,
"feedback": "Necesitas leer el contexto histórico más cuidadosamente...",
"correctAnswers": 1,
"totalAnswers": 10,
"attemptsRemaining": 2
}
```
---
### 3. Demos Pedagógicas
**Objetivo:** Mostrar a stakeholders o maestros cómo funcionan los ejercicios
**Flujo de demo (15 minutos):**
1. **Crucigrama (3 min):**
- Mostrar cómo completar 2-3 palabras
- Demostrar intersecciones (letras compartidas)
- Mostrar uso de comodín "Pista"
2. **Línea de Tiempo (2 min):**
- Drag & drop de eventos
- Mostrar feedback inmediato (verde/rojo)
- Destacar importancia de fechas
3. **Completar Espacios (2 min):**
- Mostrar banco de palabras
- Demostrar drag & drop o selección
- Validar coherencia gramatical
4. **Verdadero/Falso (3 min):**
- Leer contexto histórico
- Evaluar 2-3 afirmaciones
- Mostrar explicaciones al finalizar
5. **Sopa de Letras BONUS (2 min):**
- Explicar que es opcional
- Mostrar búsqueda de 1-2 palabras
- Destacar timer de 10 minutos
6. **Resumen (3 min):**
- Mostrar progreso del módulo
- XP y ML Coins ganados
- Próximo ejercicio disponible
---
### 4. Desarrollo Frontend
**Objetivo:** Implementar componentes de ejercicios con datos de prueba
**Componente:** `CrucigramaExercise.tsx`
```typescript
// Test data para desarrollo
const testDataExcelente = {
answers: {
h1: "SORBONA",
h2: "NOBEL",
h3: "RADIOACTIVIDAD",
v1: "POLONIO",
v2: "RADIO",
v3: "CURIE"
},
expectedScore: 100,
expectedFeedback: "¡Excelente! Has completado el crucigrama..."
};
const testDataAceptable = {
answers: {
h1: "SORBONA",
h2: "NOVEL", // error ortográfico
h3: "RADIOACTIVIDAD",
v1: "POLONIO",
v2: "RADIO",
v3: "" // vacío
},
expectedScore: 67,
expectedFeedback: "Buen intento. Algunas respuestas necesitan corrección..."
};
```
---
### 5. Entrenamiento de Maestros
**Objetivo:** Capacitar a maestros para usar y evaluar resultados de estudiantes
**Material de entrenamiento:**
**Sección 1: Comprensión del Módulo 1**
- Objetivo pedagógico: Comprensión Literal (Cassany Nivel 1)
- Competencias evaluadas: Identificar información explícita, datos biográficos, vocabulario científico
- 5 ejercicios progresivos
**Sección 2: Interpretación de Resultados**
| Score | Interpretación | Acción recomendada |
|-------|----------------|---------------------|
| 90-100 | Excelente comprensión literal | Avanzar al Módulo 2 |
| 70-89 | Comprensión sólida con errores menores | Revisar conceptos con errores, luego avanzar |
| 50-69 | Comprensión parcial | Repasar ejercicios, usar pistas, reintentar |
| 0-49 | Comprensión deficiente | Revisar texto base, sesión de tutoría, reintentar |
**Sección 3: Intervenciones por Ejercicio**
**Si el estudiante falla Crucigrama:**
- Revisar vocabulario científico básico
- Practicar identificación de información explícita
- Reforzar ortografía de términos técnicos
**Si el estudiante falla Línea de Tiempo:**
- Trabajar cronología y secuencias temporales
- Practicar identificación de fechas en textos
- Reforzar comprensión de narrativas biográficas
**Si el estudiante falla Completar Espacios:**
- Revisar comprensión de contexto gramatical
- Practicar coherencia semántica
- Reforzar lectura de textos completos antes de responder
**Si el estudiante falla Verdadero/Falso:**
- Trabajar verificación de hechos contra evidencia textual
- Practicar detección de palabras absolutas ("solamente", "nunca")
- Reforzar diferencia entre inferencias y hechos explícitos
---
## 📚 REFERENCIAS
### Fuente de Verdad
- **Seeds PROD:** `apps/database/seeds/prod/educational_content/02-exercises-module1.sql`
- **Documento de Diseño:** `docs/00-vision-general/DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md`
- **Modelo Cassany:** Nivel 1 - Comprensión Literal
### Validadores Backend
- `apps/database/ddl/schemas/educational_content/functions/01-validate_crucigrama.sql`
- `apps/database/ddl/schemas/educational_content/functions/02-validate_linea_tiempo.sql`
- `apps/database/ddl/schemas/educational_content/functions/03-validate_completar_espacios.sql`
- `apps/database/ddl/schemas/educational_content/functions/04-validate_verdadero_falso.sql`
- `apps/database/ddl/schemas/educational_content/functions/05-validate_sopa_letras.sql`
### Frontend Components (Esperados)
- `apps/frontend/src/features/exercises/components/CrucigramaExercise.tsx`
- `apps/frontend/src/features/exercises/components/LineaTiempoExercise.tsx`
- `apps/frontend/src/features/exercises/components/CompletarEspaciosExercise.tsx`
- `apps/frontend/src/features/exercises/components/VerdaderoFalsoExercise.tsx`
- `apps/frontend/src/features/exercises/components/SopaLetrasExercise.tsx`
---
## 🎓 CONCLUSIÓN
Esta guía proporciona **ejemplos exhaustivos** de respuestas en 3 niveles de calidad para todos los ejercicios del Módulo 1. Úsala para:
**QA:** Validar scoring y feedback del sistema
**Desarrollo:** Implementar componentes con test data realista
**Demos:** Mostrar funcionalidad a stakeholders
**Entrenamiento:** Capacitar maestros en interpretación de resultados
**Testing API:** Verificar endpoints de validación
**Próximos pasos:** Revisar guías de los Módulos 2 y 3 para comprensión inferencial y crítica.
---
**Documento generado:** 2025-11-23
**Autor:** Architecture-Analyst
**Versión:** 1.0
**Estado:** Listo para uso en QA, desarrollo y demos