Reporte de problemas — pc-activities

Progresión didáctica de las 17 actividades exclusivamente en español · análisis anclado al código Blockly real
Generado el 25/06/2026 · 17 actividades · 17 programas .ptj decodificados · análisis local
Cómo leer este reporte. Cada observación texto↔código incluye la cita textual de la ficha y el dato exacto del código decodificado. Los candidatos fueron encontrados por un revisor estricto y luego filtrados por un verificador escéptico independiente (por defecto: rechazada hasta probarse): 10 candidatos → 9 confirmados, 1 descartado. Los defectos internos del código (§B) y los hechos de secuencia (§C) se verificaron directamente con grep/lectura del código, no por agentes.
Cada código de actividad es un enlace ↗: abre la actividad en el visor y resalta el punto correspondiente.
17
Actividades
8
Errores texto↔código (§A)
22
Correcciones .md aplicadas (§F)
65
Confirmados en la ronda profunda
alta media baja en disputa

A · Errores texto↔código confirmados El estudiante o el docente sería engañado de hecho.

03.1 El concepto central de la actividad es falso alta

La ficha dice — code-composition«el valor de la inclinación Y se lee una vez, se divide por 15… y luego ese mismo resultado se usa en dos lugares: …la posición Y del LED y …la nota musical. ¡Esta reutilización es lo que garantiza la sincronización perfecta!»
El código haceLED = 4 + round(oriY / 15) nota = oriY + 60 ← el sensor se lee DOS veces, la nota NO se divide
Por qué es un error: no existe ningún “mismo resultado” reutilizado: el sensor se lee dos veces y la nota usa el valor crudo. La “sincronización perfecta” —que es el objetivo didáctico de la actividad— no existe. El error se propaga en 3 puntos: la card “División Mágica”, el code-composition, y la reflexión “¿qué pasaría si quitáramos el bloque de división?” (quitarla cambia solo el LED, no la nota).
_activities/03.1-led-xylophone.es.md · líneas 83, 102, 113

16.4 Nombre de variable y objetivo equivocados en el guion del docente media

La ficha dice — guía docente (Inicio)«Crearemos una variable llamada 'energía'… competiremos para ver quién puede cargarla hasta 50…»
El código haceESTABLECER var:toques = 0 ← la variable se llama "toques", no "energía" SI (var:toques < 7) … ← el robot se activa en 7, no en 50
Por qué es un error: en la misma frase del guion hay dos datos concretos equivocados — el nombre de la variable (energía en vez de toques) y el objetivo del juego (“cargarla hasta 50” mientras el código se completa en 7, var:toques < 7). El code-composition usa correctamente toques y 7, así que la ficha es incoherente consigo misma: un docente que lee el Inicio anunciaría a la clase un nombre y una meta que el prototipo no tiene.
_activities/16.4-robot-activation-challenge.es.md · línea 49

02.2 El mecanismo de color prometido ≠ el real (y la ficha se auto-contradice) media

La ficha dice — learn«…lo conectaremos directamente al valor de intensidad del color Rojo. Dejaremos el Verde y el Azul en cero.» (→ pantalla roja)
El código hacecolor_light(LEVEL = NivelRuido.leer(noise)) ← varía el BRILLO, ningún canal R/G/B
Por qué es un error: el código no asigna ningún canal rojo/verde/azul; usa un solo parámetro de intensidad. La misma ficha, en el code-composition, lo admite (“variando la intensidad del brillo”): dos descripciones en conflicto en el mismo archivo.
_activities/02.2-music-visualizer.es.md · líneas 83–84

16.5 El adverbio “solo” es falso media

La ficha dice«Al iniciar solo prepara la variable estado
El código haceAL INICIAR: ESTABLECER var:estado = FALSE DibujoLED.background = #000000 ← segunda acción: apaga el fondo
Por qué es un error: AL INICIAR hace dos cosas, no una; el estudiante que sigue el bloque se pierde el apagado inicial.
_activities/16.5-magic-clap-switch.es.md · línea 101

16.3 “Duerme en la pantalla” pero la pantalla queda vacía baja

La ficha dice — rama SINO«El murciélago se queda quieto o "duerme" en la pantalla
El código hace[sino] DibujoLED.clear() ← matriz apagada: ningún murciélago visible
Por qué es un error: “en la pantalla” promete una figura quieta en la pantalla; el código borra todo y deja el display vacío.
_activities/16.3-bat-in-the-dark.es.md · línea 90

22.1 ultimoLatido (texto) vs ultimoBeat (código) en disputa

La ficha dice — learn / cierre docente«…actualizar ultimoLatido al tiempoActual…»
El código haceESTABLECER var:ultimoBeat = milliseconds() ← la variable real es "ultimoBeat"
Caso límite — decides tú. Los dos verificadores se dividieron: uno lo confirma (en el texto ultimoLatido va en backtick como una variable, pero en el código no existe); el otro lo rechaza (es un patrón intencional: nombre conceptual en la narración, identificador real en el code-composition — igual con tiempoActual/intervalo). Error si quieres que los nombres coincidan; opción legítima si es bilingüe a propósito.
_activities/22.1-dj-metronome.es.md · líneas 59, 87

B · Defectos internos del código Verificados directamente con grep sobre el código decodificado.

19.1 Componente muerto baja

DibujoLED4 = MatrixDraw está declarado en los componentes pero nunca se usa en el código.

21.1 Tres descuidos en el código media

• La variable del ciclo es lineas, pero los comentarios dicen «una variable llamada "filas"».
• Los comentarios de la rama descendente (CONTAR CON … DE 7 A 1) son copia-pega de la ascendente: «asigna valores desde 1 hasta 7 en aumentos de 1».
• Los comentarios dicen «se ejecuta 5 veces…» pero luego concluyen 7×7 = 49 (el “5” es un residuo erróneo).

14.2 Comentario auto-contradictorio y clonado media

Comentario en el código (idéntico en ambos eventos)«la velocidad de latidos aumentará (Los tiempos son más largos, es decir las variables toman valores grandes)»
Por qué es un error: tiempos más largos / valores más grandes = latido más lento, lo opuesto de “aumentará”; y el mismo texto está pegado tanto en el bloque que acelera como en el que frena.

16.3 Link/slug del proyecto fuera de tema baja

En el .md y en el .ptjgenerate?luces-de-fiesta-al-oscurecer ← "luces de fiesta", reusado para la actividad "murciélago"
El programa sí dibuja un murciélago, pero el slug/link es el de otro proyecto (“luces de fiesta”), residuo de la reutilización.

C · Secuencia didáctica Observaciones — dominio del autor, confianza baja. Los conteos son hechos; la lectura pedagógica no (aquí ya me equivoqué y corregí).

La lógica de entrada prevista — el “corazón que late” (04.1) debería ser la 1ª actividad. Hoy 04.1 está en 4º lugar, después del xilófono; pero fue pensada como primera lección, y es el punto de entrada natural porque tiene un solo output (sin entrada ni mapeo) y construye la lógica base, paso a paso, en unos 10 minutos:
  1. qué es un comando → dibujar un corazón (1 comando);
  2. dos comandos con una pausa → corazón abierto / corazón cerrado = una pequeña animación (secuencia + retraso);
  3. “¿y si queremos que se repita?” → el bucle principal (repetir para siempre);
  4. “¿y si queremos más animaciones adentro?” → repeticiones dentro del bucle (anidamiento).
Con la lógica bien explicada, un principiante llega tranquilamente hasta el bucle principal en la primera clase. Recién después conviene el xilófono simple (02.1), que es más complejo: combina entrada + salida + mapeo. El corazón, en cambio, es salida pura; luego se le agrega el sonido del latido (2 salidas), un paso lineal y fácil de entender. Por eso el orden actual (xilófono 1º, corazón 4º) invierte la dificultad real para quien recién empieza: se arranca con lo más complejo (input + mapeo) en vez de con lo más simple (una sola salida).
AspectoDóndeLecciónEvaluación
repetir N veces (un número)04.104.1 (también anidamiento)✓ trivial, bien ubicado
contar con (el “for”)usado 16.4 · explicado 21.121.1 (lección completa)⚠️ lección fuera de orden: usado en 16.4 antes de explicarse; ver §G
repetir mientras (el “while”)19.119.1enseñado donde se usa, pero asume el contar con ya conocido (ver §G)
bloque tiempo (ESPERAR)02.1, luego en 12/17ninguna🔴 nunca se introduce en las 17 — e introducirlo es importante
variables14.2 (de estado)14.2 y 16.4 (contador)el uso más abstracto (estado) precede al básico (contador) — por evaluar
toggle no(...)16.5, 17.116.5 + 17.1par casi redundante — por evaluar
Corrección (en bloques, y con los nombres correctos). El repetir N veces (un número, 04.1) es trivial y está bien ubicado. Dos nudos reales, evaluados solo sobre las 17: (a) el bloque tiempo (ESPERAR) se usa desde 02.1 en 12/17 actividades pero nunca se introduce con una lección → vacío importante (introducir el tiempo es fundamental); (b) el contar con se usa en 16.4 pero su lección real llega recién en 21.1 (y 19.1 ya lo da por conocido) → lección fuera de orden: en su primera aparición aún no está explicado. Terminología: los materiales dicen for/while, pero los bloques reales son contar con y repetir mientras.

D · Transparencia — qué no es un error Para reconstruir confianza: lo que se descartó y por qué.

02.1 — ningún error. “Mapeo directo” es coherente con el código, la constante 60 está explicada, “acelerómetro” es una simplificación legítima para Grados 3-12. Era un falso positivo de la primera ronda.
En general — descartado. Casi todas las “divergencias” de la primera ronda (el código hace animaciones, colores, bitmaps no descritos en el texto) no son errores: son andamiaje normal en actividades con código provisto. Por eso el filtro estricto redujo ~50 señalamientos inflados a 8 reales.
14.2 “estado durmiente” — removido. Un corazón “durmiente” late lento, no se detiene: el código sí tiene ese estado (latido lento 500/150) frente al “activo” (rápido 250/80). La señal asumía erróneamente que “durmiente” = corazón detenido. Falso positivo.

E · Coherencia interna — profundización Nuevos problemas sutiles confirmados (además de §A/§B). Ronda profunda: 95 candidatos → 65 confirmados, 30 rechazados.

03.1 El guion docente dice “izquierda y derecha”, pero la luz se mueve en vertical media

La ficha dice — guía docente«¿Cómo podríamos hacer que una luz en la pantalla se mueva a izquierda y derecha siguiendo la melodía que tocamos con la inclinación?»
El código hacedrawOnXY( X = 4 , Y = 4 + round(oriY/15) ) ← X FIJA, varía la Y → el punto va arriba/abajo, no izquierda/derecha
Por qué es un error: en drawOnXY el primer argumento es X, el segundo Y. Aquí X es constante (4) y Y depende de la inclinación: movimiento vertical. Un docente que anuncia un movimiento horizontal es desmentido por la pantalla (y por el Desafío, que usa el eje X como eje fijo de duplicación).

03.1 La card “La División Mágica” dice que la división escala también la nota — pero la nota no se divide media

La ficha dice — learn«…la división… reducir el rango de números del sensor para que encaje perfectamente tanto en nuestra pantalla como en nuestra escala musical
El código hacenota = oriY + 60 ← ninguna división: el “rango musical” NO se reduce
Por qué es un error: es una card distinta de la ya señalada en §A1, y enseña una justificación matemática falsa para la nota. Es un segundo punto del mismo defecto de fondo de 03.1.

14.2 El comentario del bloque faceUp se auto-contradice media

Comentario en el código (bloque faceUp, que FRENA)«…la velocidad de latido aumentará (Los tiempos son más largos…). En este bloque específico la velocidad de latidos se reducirá
Por qué es un error: “aumentará” y “se reducirá” referidos a la misma acción; y faceUp pone 500/150 (es decir, frena). Solo “se reducirá” es coherente. Copia-pega mal adaptado del bloque gemelo.

16.1 Glosa en inglés equivocada: “Si… Sino…” explicado como “(If…Else if…)” baja

La ficha dice — reflect«…en el próximo proyecto con el bloque 'Si... Sino...'! (If…Else if…)»
Por qué es un error: el bloque es un if/else, pero la glosa dice else-if (cadena de condiciones), un constructo distinto — y contradice la frase anterior, que describe la simple rama “falsa”.
Confirmados también, pero ya en §A/§B (aquí con la cita exacta): 19.1 DibujoLED4 declarado en el encabezado pero el paso “create” dice “Necesitaremos 2 componentes” (§B1); los tres comentarios erróneos de 21.1 (§B2); el comentario contradictorio de 14.2 (§B3). En disputa (un verificador confirma, otro rechaza): 22.1 ultimoLatido vs ultimoBeat.

F · Redacción — español de Chile Los 22 hallazgos que estaban en el texto del .md ya fueron corregidos. Abajo quedan solo los que están en el código (comentarios de los bloques), para corregir a mano en Protobject, más algunas decisiones.

✓ Ya corregido en el .md (22 items). Localización chilena: patata→papa (19.1), bombilla→ampolleta y Puzzle→Rompecabezas (16.5), dispositivo unificado en celular (02.1, 04.1, 16.2). Tildes/gramática/mayúsculas: líneas, LEDs, BotónTáctil, reaccione, que ocurre, les dices, con una propiedad, signos ¡…!, de la Tierra, 60.000, ¡Pon a prueba…!, etc.
Terminología de los bloques (decisión pendiente, no se tocó): los materiales enseñan los ciclos con el nombre en inglés — bucle "for" (21.1: 17 veces; 19.1: 5 veces) y bucle "while" — mientras que los bloques reales se llaman contar con y repetir mientras. Cambiarlo es una decisión de diseño (no un typo), por eso se deja.
Lo de abajo está en los comentarios del código Blockly (no en el .md): se corrige a mano en Protobject.
Act.TipoIncorrecto → correcto (en el código)Sev
02.1erratasecuencia porgramadaprogramadaalta
14.2gramáticael momento en cambia la posiciónen que cambiamedia
14.2concordanciaaumentará o disminuirándisminuirámedia
14.2tildeaumentaraaumentarámedia
16.4mayúsculascomentario "Toques""toques" (×2)baja
17.1concordanciala posición… está dadoestá dadamedia
17.1erratamientra quemientras quebaja
21.1comentariovariable llamada "filas""lineas" (es el nombre real)media
21.1comentariorama descendente: desde 1 hasta 7 en aumentos de 1 → describe el sentido opuesto (cuenta 7→1)media
21.1númerosse ejecuta 5 veces7 veces (luego dice 7×7=49)media
21.1erratade"dibuja en x..."de "dibuja en x..." (espacio)baja
22.2tildemediremos cuanto escuánto (interrogativo indirecto)baja
Decisiones (no erratas claras), se dejan: 16.1 “Si… Sino…” es el nombre del bloque if/else; 16.4 variable energía vs toques (§A2, decidir el nombre); 17.1 flama ↔ llama (también es el nombre de la variable flama); 22.1 ultimoLatido vs ultimoBeat (§A6, contestado).

G · Referencias a otras actividades Ninguna actividad debería citar a otra (la progresión está en el orden). Aquí todas las referencias. En rojo las incorrectas (apuntan a una actividad que aún no ha ocurrido, o afirman algo falso): hay que arreglarlas igual. Las demás son correctas — quitarlas es una decisión de estilo (autocontención). Ya limpias: solo 04.1 y 22.3.

Leyenda de referencia: hacia atrás · hacia adelante · nombra un proyecto · todo el recorrido. Filas rojas = incorrectas (6).
Act.Secc.CitaRemite aEstado
02.1Desafío«El siguiente paso es hacer que una luz se mueva…»→ 03.1✓ correcto
02.2teacher«…relacionado la inclinación con notas musicales y a la posición de un LED»← 02.1/03.1Incorrecto: la posición del LED es 03.1, que viene después de 02.2 (aquí aún no ha pasado)
03.1teacher«modificarán su proyecto de xilófono anterior»← 02.1✓ correcto
03.1reflect«…y el xilófono anterior?»← 02.1✓ correcto
14.1learn«Hasta ahora, hemos usado un bucle "repetir para siempre"…»← prev.✓ correcto
14.1reflect«…más "reactivo" que los anteriores»← prev.✓ correcto
16.1Desafío«…en el próximo proyecto con el bloque "Si... Sino..."»→ 16.2✓ correcto (16.2 es la siguiente)
16.2teacher«…Nuestra alarma para galletas tenía un Plan A…»← 16.1 ◆✓ correcto
16.3teacher/learn/reflect«…del Despertador de Girasol», «espejo de la del girasol», «lo contrario al Girasol» + otras 4 (líneas 47,48,49,55)← 16.2 ◆✓ correctas (16.2 es anterior) — pero son 7
16.4teacher«…la actividad anterior: "Nuestro robot cosquilloso…"» · «El robot cosquilloso reaccionaba…»← 14.1 ◆✓ correcto
16.4teacher«anticipar la próxima lección»→ siguiente✓ correcto (vago)
16.5reflect«Compara este código con el de la "Vela Mágica"»◆ 17.1Incorrecto: la "Vela Mágica" (17.1) viene después de 16.5
16.5Desafío«…el bucle "for", que veremos en la próxima misión!»Incorrecto: la siguiente (17.1) no tiene el for; está en 21.1
16.5teacher/descr.«…proyectos anteriores» · «Consolida todo lo que has aprendido…»← prev.✓ correcto (genérico)
17.1teacher«…las lecciones anteriores: eventos, variables… condicionales»← prev.✓ correcto
19.1teacher«Hemos aprendido el bucle "for"…»Incorrecto: la lección del contar con está en 21.1 (después); aquí solo se usó (16.4), no se enseñó
21.1create/teacher«…"Interruptor Mágico de Aplausos"» · «…su código anterior»← 16.5 ◆✓ correcto (16.5 es anterior)
21.1Desafío«…en el juego de "la papa caliente"… ¡Prepárate para el siguiente desafío!»◆ 19.1 →Incorrecto: la papa caliente (19.1) es anterior, no "el siguiente"
22.1teacher/intro«Hemos usado el bloque "esperar"…» · «Has dominado las piezas…»← prev.✓ correcto
22.2descr./reflect«…este desafío final» · «Has completado todos los desafíos…»≡ recorridoIncorrecto: 22.3 viene después, así que no es el final
Las 6 en rojo son referencias rotas (apuntan hacia adelante como si ya hubiera pasado, o afirman algo falso) → hay que corregirlas o quitarlas igual. Las otras ~14 son referencias correctas: quitarlas o dejarlas es decisión de estilo (autocontención). Nota aparte: 22.3 también está mal ubicada (después del final de 22.2) y el contar con es una lección fuera de orden (§C).

En síntesis

Las actividades son en su mayoría coherentes en el código. Los defectos reales se concentran en tres frentes: 03.1 sigue siendo la única rota en su núcleo didáctico (prioridad #1, §A1 + §E); la redacción es el frente más cargado — 49 hallazgos entre erratas (porgramada), gramática y sobre todo localización chilena (papa no patata, ampolleta no bombilla, celular uniforme); la secuencia en bloques es sana, con dos nudos: el bloque tiempo nunca se introduce (y debería), y la lección del contar con (21.1) llega después de su primer uso (16.4); y sobre todo la regla de que ninguna actividad debe citar a otras: hoy hay ~25 referencias (§G), solo 04.1 y 22.3 están limpias. Además una terminología por unificar (contar con/repetir mientras, no for/while), los nombres de variable (16.4, 22.1) y los descuidos de comentario (14.2, 21.1).