Del código en blanco al andamiaje
Del código en blanco al andamiajeANEP · Ceibal · Formación docente
0 %

Recurso de formación docente · Ciencias de la Computación

Del código en blanco al andamiaje cognitivo

Por qué conviene que el o la joven estudiante lea, anticipe, siga paso a paso y explique código antes de escribirlo, y cómo acompañar ese proceso con apoyos que se retiran a medida que gana autonomía.

1
Para pensar
Una situación de tu aula
Sin respuestas correctas
Antes de cada concepto, una pregunta sobre tu práctica. Cada opción se conecta con una teoría que la respalda y te indica qué tan alineada está con lo que vas a leer, y por qué.
2
Teoría
Con sus autoras y autores
Primero se explica
Cada concepto se explica antes de nombrarlo, con las investigaciones que lo sostienen y sus límites.
3
Práctica
Para llevar al aula
Simuladores y decisiones
Simuladores y actividades para probar lo leído. Cada lección cierra con sus implicancias para tu planificación.
Lección 1

Leer antes de escribir

Por qué no conviene empezar un tema nuevo pidiendo que se escriba un programa desde una pantalla vacía, y qué hacer en su lugar.

Dos memorias

La psicología cognitiva distingue dos sistemas de memoria. El primero es el espacio donde sostenemos y manipulamos lo que estamos pensando en este momento: el número de teléfono que acabamos de escuchar, los pasos de una cuenta que hacemos de cabeza. Es muy limitado y se satura rápido. Miller (1956) estimó que retiene unos siete elementos; Cowan (2001) revisó la evidencia y bajó la cifra a unos cuatro.

Baddeley y Hitch (1974) mostraron que no es un simple depósito, sino un sistema activo que procesa información, y lo describieron como memoria de trabajo. El segundo sistema guarda todo lo que sabemos y, en la práctica, no tiene límite: es la memoria de largo plazo.

Lo que sabemos se guarda organizado

La memoria de largo plazo no guarda piezas sueltas: organiza el conocimiento en estructuras que agrupan muchos elementos y que se recuperan como si fueran uno solo. Bartlett (1932) llamó esquemas a estas estructuras.

Para una docente de programación, for i in range(10): es una sola idea. Para quien la ve por primera vez son siete u ocho piezas sin relación entre sí, y cada una ocupa un lugar en la memoria de trabajo.

El esfuerzo que exige una tarea

Sweller (1988) reunió estas ideas en una teoría: toda tarea exige un esfuerzo a la memoria de trabajo, y si ese esfuerzo supera su capacidad, no queda espacio para aprender. Llamó a ese esfuerzo carga cognitiva. Sweller, van Merriënboer y Paas (1998) distinguieron después tres fuentes:

  • la que viene de la complejidad propia del contenido, que tiene muchos elementos que interactúan (carga intrínseca);
  • la que agrega una tarea mal diseñada o una presentación confusa, y que no ayuda a aprender (carga extrínseca);
  • la que se dedica a construir esquemas, que es la que buscamos (carga pertinente).

Por qué el editor en blanco es la tarea de máxima carga

Escribir un programa desde una pantalla vacía obliga a sostener a la vez el problema, un plan de solución, la sintaxis del lenguaje y una idea de cómo se ejecutará el código. Quien programa con experiencia agrupa todo eso en pocos esquemas; el o la joven estudiante todavía no los tiene y debe sostener cada pieza por separado.

Sweller y Cooper (1985) compararon a estudiantes que resolvían problemas de álgebra con otros que estudiaban los mismos problemas ya resueltos: los segundos aprendieron más y en menos tiempo. A este resultado se lo conoce como efecto del ejemplo resuelto.

Un debate abierto: ¿cuánta guía?

Kirschner, Sweller y Clark (2006) sostuvieron que las propuestas con guía mínima, en las que se espera que se descubra por cuenta propia, no funcionan con quienes recién empiezan, justamente porque sobrecargan la memoria de trabajo.

Hmelo-Silver, Duncan y Chinn (2007) respondieron que el aprendizaje basado en problemas y en indagación sí logra buenos resultados cuando incluye apoyos bien diseñados. Las dos posiciones coinciden en algo: la clave está en el apoyo.

El apoyo que se retira

Vygotsky (1978) describió la distancia entre lo que una persona puede hacer sola y lo que puede hacer con la ayuda de alguien con más experiencia, y la llamó zona de desarrollo próximo: es allí donde la enseñanza tiene más efecto.

Wood, Bruner y Ross (1976) observaron a una tutora que ayudaba a niñas y niños de 3 a 5 años a armar una pirámide de bloques. La ayuda eficaz se hacía cargo de las partes de la tarea que todavía no podían resolver, para que se concentraran en las que sí podían, y se retiraba a medida que ganaban dominio. Tomaron una imagen de la construcción para nombrarla: andamiaje (en inglés, scaffolding).

Por eso no se trata de «nunca escribir», sino de no empezar por escribir: empezar leyendo código que funciona y sostener cada tarea con apoyos que se retiran de a poco.

Para recordar

Carga cognitiva
Esfuerzo que una tarea exige a la memoria de trabajo. Puede venir del contenido (intrínseca), de un mal diseño de la tarea (extrínseca) o de la construcción de esquemas (pertinente).
Andamiaje
Apoyo temporal que se hace cargo de lo que la persona todavía no puede hacer sola y se retira a medida que gana dominio.
Quiénes lo trabajanBartlett, 1932Miller, 1956Baddeley y Hitch, 1974Wood, Bruner y Ross, 1976Vygotsky, 1978Sweller y Cooper, 1985Sweller, 1988Sweller, van Merriënboer y Paas, 1998Cowan, 2001Kirschner, Sweller y Clark, 2006Hmelo-Silver, Duncan y Chinn, 2007

Simulador: la memoria de trabajo del o la joven estudiante

Simulador

Seguir el código a mano

Imagina que tomas un programa y lo ejecutas tú, en papel: lees la primera línea, anotas qué valor queda guardado, pasas a la siguiente, decides si una condición se cumple, vuelves al comienzo del bucle. No adivinas el resultado: lo construyes paso a paso.

A esta práctica se la llama trazar el código (en inglés, tracing).

Lo que encontraron los estudios entre países

McCracken y colegas (2001) pidieron a estudiantes de primer año de universidades de varios países que escribieran programas sencillos: la mayoría no lo logró. Lister y colegas (2004) se preguntaron si el problema empezaba antes de escribir y, en otro estudio entre países, pidieron leer y trazar fragmentos cortos: muchos estudiantes tampoco pudieron.

Lopez, Whalley, Robbins y Lister (2008) y Venables, Tan y Lister (2009) midieron en las mismas personas la capacidad de trazar, de explicar y de escribir código, y encontraron que se relacionan: quienes no trazan ni explican bien tienden a escribir peor. Venables y colegas agregaron un matiz: la relación no es lineal, porque trazar bien es necesario, pero no suficiente, para escribir bien.

Una idea de cómo funciona la máquina

Para anticipar qué hará un programa hace falta una representación interna de cómo funciona la computadora al ejecutarlo. La psicología llama modelo mental a la representación interna que una persona tiene de cómo funciona algo (Johnson-Laird, 1983).

Trazar es la forma de construir ese modelo y de ponerlo a prueba.

Etapas en el razonamiento de quien aprende a programar

Piaget (1952) describió el desarrollo del pensamiento como una sucesión de etapas, en las que el razonamiento pasa de depender de la acción y de lo concreto a manejar ideas abstractas.

Lister (2011) propuso que al aprender a programar se recorre algo parecido, a cualquier edad: primero la persona no logra seguir con precisión lo que hace el código; después lo sigue, pero no ve el programa como un todo; más tarde razona sobre el programa completo y puede abstraer. Por tomar el modelo de Piaget y aplicarlo a un dominio nuevo, este enfoque se llama neopiagetiano. Su consecuencia para el aula es directa: quien todavía no traza con precisión no está en condiciones de abstraer ni de crear.

Programas que funcionan por casualidad

Perkins, Hancock, Hobbs, Martin y Simmons (1986) observaron a estudiantes mientras programaban y describieron un estilo frecuente: ajustar el código probando cambios hasta que funcione, sin una idea clara de lo que hace la computadora. Lo llamaron tinkering, algo así como «ir retocando». Un programa que funciona, entonces, no garantiza que haya comprensión.

Aprender a programar es acumulativo en dos sentidos: cada concepto (variable, condicional, bucle, función) se apoya en el anterior, y escribir se apoya en saber leer. Por eso conviene priorizar la comprensión lectora de código sobre la escritura a ciegas.

Para recordar

Trazar
Ejecutar un programa a mano, línea por línea, registrando cómo cambian los valores y decidiendo cuál es la línea siguiente.
Modelo mental
Representación interna de cómo funciona algo; en programación, de cómo la computadora ejecuta un programa.
Quiénes lo trabajanPiaget, 1952Johnson-Laird, 1983Perkins et al., 1986McCracken et al., 2001Lister et al., 2004Lopez et al., 2008Venables, Tan y Lister, 2009Lister, 2011

Tres señales para observar en tu grupo

Toca cada tarjeta para ver qué indica según la teoría.

Implicancia práctica en el aula

  • Evita que la primera actividad de una unidad sea «escribe un programa que...». Comienza con un programa que funciona y una pregunta sobre qué hace.
  • Dedica a cada concepto nuevo al menos una actividad de lectura (anticipar o trazar) antes de la primera de escritura.
  • Registra quiénes todavía no trazan con precisión: necesitan más lectura y menos escritura, no más ejercicios de creación.
Lección 2

Una clase que empieza leyendo código

Cómo organizar una clase para que el grupo anticipe, ejecute, analice y modifique un programa antes de escribir el suyo.

Aprender primero con otras personas

Vygotsky (1978) sostuvo que las funciones mentales superiores aparecen dos veces en el desarrollo: primero entre personas, en la interacción mediada por el lenguaje, y después dentro de cada persona. Al primer momento lo llamó plano interpsicológico (o social) y al segundo, plano intrapsicológico (o individual). Al pasaje de uno a otro lo llamó internalización.

El lenguaje es la herramienta que lo hace posible: al poner en palabras lo que hace un programa, cada estudiante organiza su propio pensamiento.

Cuando lo esperado choca con lo que ocurre

Posner, Strike, Hewson y Gertzog (1982) estudiaron cómo cambian las ideas de estudiantes de ciencias. Una persona abandona una idea cuando esta deja de explicar lo que observa y aparece otra que le resulta comprensible, creíble y útil. A ese proceso lo llamaron cambio conceptual.

En programación, el choque se produce cuando alguien anticipó un resultado y la computadora muestra otro: la diferencia obliga a revisar la idea de cómo se ejecuta el código.

Una secuencia de clase en cinco fases

Sentance y Waite (2017), y luego Sentance, Waite y Kallia (2019), combinaron estas ideas con la evidencia sobre lectura y trazado en una secuencia para clases de programación con texto, que puede ocupar una clase o varias:

  1. el grupo anticipa qué hará un programa dado, conversando en pares: predecir;
  2. lo ejecuta y compara el resultado con lo que anticipó: ejecutar;
  3. lo analiza: lo traza, lo anota, responde preguntas y busca errores: investigar;
  4. le hace cambios cada vez mayores: modificar;
  5. escribe un programa nuevo que reutiliza las mismas estructuras: crear.

Las iniciales de las fases en inglés (Predict, Run, Investigate, Modify, Make) forman la sigla con que se conoce esta secuencia: PRIMM.

Por qué predecir es la fase clave

Es la menos intuitiva y la más importante: obliga a comprometerse con una explicación antes de recibir la respuesta de la computadora, y así hace visible el modelo mental de cada estudiante, incluidos sus errores.

Además reduce la ansiedad por una razón estructural: la carga se comparte con un par, la respuesta es de bajo riesgo y, al leer código que ya funciona, no se pueden cometer errores en la forma de escribirlo, una fuente frecuente de frustración inicial.

Qué dice la evidencia

493estudiantesen el estudio de referencia
11–14añosde edad del grupo
13escuelasparticipantes
8–12semanasde trabajo con la secuencia
Sentance, Waite y Kallia (2019); Raspberry Pi Foundation (2023)

El grupo que trabajó con esta secuencia obtuvo mejores resultados en una prueba posterior que el grupo de comparación. Es evidencia de un contexto escolar concreto: no garantiza el mismo efecto en todos los grupos.

Para recordar

PRIMM
Secuencia de clase en cinco fases (predecir, ejecutar, investigar, modificar, crear) que empieza leyendo código ajeno y se apoya en la conversación entre pares.
Cambio conceptual
Revisión de una idea cuando deja de explicar lo que se observa y aparece otra más comprensible, creíble y útil.
Quiénes lo trabajanVygotsky, 1978Posner, Strike, Hewson y Gertzog, 1982Sentance y Waite, 2017Sentance, Waite y Kallia, 2019Raspberry Pi Foundation, 2023

Las cinco fases en tu clase

Qué hace el grupo: estudia un programa dado y anticipa su salida, de manera informal, en pares o tríos.

Qué se pone en juego: conocimientos previos, formulación de hipótesis, ejecución mental y compromiso con una respuesta antes de ver el resultado.

Qué hace el grupo: ejecuta el programa y contrasta el resultado con lo que anticipó.

Qué se pone en juego: detectar diferencias, revisar el modelo mental, recibir la respuesta inmediata de la computadora.

Ejecutar no cierra la actividad: si el resultado difiere de lo anticipado, abre la pregunta de la fase siguiente.

Qué hace el grupo: analiza la estructura del programa: lo traza, lo anota, responde preguntas, busca errores.

Qué se pone en juego: comprensión en varios niveles, construcción del modelo de ejecución, verbalización y reconocimiento de patrones. Aquí se concentra la comprensión profunda.

Qué hace el grupo: hace cambios pequeños y progresivamente mayores.

Qué se pone en juego: uso de lo aprendido en una situación muy parecida, razonamiento de causa y efecto, primeros pasos de apropiación del código.

Qué hace el grupo: escribe un programa nuevo que reutiliza las mismas estructuras, a partir de un diseño o de una consigna abierta.

Qué se pone en juego: uso de lo aprendido en un problema distinto, planificación e integración.

Si no se puede conversar ni compartir

Si no se puede...Sustituye por...
Conversar con un parPredicción escrita con nivel de confianza; luego se revela una explicación modelo para comparar
Debatir la traza en plenarioTabla de traza autocorregida, con dos o tres errores típicos explicados
Exponer la explicación a otras personasElegir entre explicaciones candidatas y autoevaluarse con una rúbrica
Responder en voz alta o votarTarjetas de color o encuesta rápida; en video, pausas de «detén y anticipa»
Compartir lo creadoAutoevaluación con rúbrica y casos de prueba; galería opcional en un foro
Recibir devolución del docenteDevolución automática por lógica y pistas escalonadas

En una clase expositiva para todo el grupo: primero modelas la traza en voz alta («yo hago»), después anticipan todos con tarjetas («hacemos juntos») y por último cada estudiante trabaja en su ficha («tú haces»).

La computadora que imaginamos

Para anticipar qué hará un programa no hace falta saber cómo funciona el procesador por dentro. Alcanza con una versión simplificada de la computadora que sigue las reglas del lenguaje, por ejemplo: «una asignación evalúa primero lo que está a la derecha del signo igual y guarda el resultado bajo el nombre de la izquierda». Du Boulay (1986) llamó máquina nocional a esa computadora imaginaria.

Sorva (2013) mostró que muchas dificultades de quienes empiezan a programar vienen de una máquina nocional incompleta o equivocada, y que conviene enseñarla de forma explícita en lugar de esperar que se deduzca.

Trazar es ejecutar a mano la máquina nocional

Fitzgerald, Simon y Thomas (2005) analizaron cómo trazan los estudiantes y encontraron estrategias muy diversas y, en muchos casos, ineficaces: intentar recordar los valores sin anotarlos, saltear vueltas de un bucle, suponer el resultado.

Xie, Nelson y Ko (2018) enseñaron una estrategia explícita, siempre igual, y quienes la usaron trazaron con más precisión.

Ponerle nombre al propósito de cada parte

Margulieux, Catrambone y Guzdial (2016) mostraron que agregar a un ejemplo resuelto rótulos que nombran el propósito de cada grupo de líneas (por ejemplo «inicializar», «recorrer», «acumular») mejora el desempeño en problemas nuevos. A esos rótulos los llamaron subobjetivos.

Qué hace y para qué sirve

Schulte (2008) propuso un modelo de comprensión de programas que distingue, entre otras dimensiones, entender la estructura y la ejecución del código (qué instrucciones tiene, qué pasa al correrlo) y entender su función (para qué sirve). Lo llamó modelo de bloques (en inglés, Block Model). Comprender un programa es poder moverse entre ambas.

Se ha señalado una precisión de trazado cercana al 50 % como umbral para empezar a escribir con confianza (Raspberry Pi Foundation, 2023; dato a verificar en la fuente original).

Para recordar

Máquina nocional
Versión simplificada e imaginaria de la computadora, que sigue las reglas del lenguaje y permite anticipar qué hará un programa.
Subobjetivos
Rótulos que nombran el propósito de cada grupo de líneas de un programa.
Quiénes lo trabajandu Boulay, 1986Fitzgerald, Simon y Thomas, 2005Schulte, 2008Sorva, 2013Margulieux, Catrambone y Guzdial, 2016Xie, Nelson y Ko, 2018

Mini-lección de 5 minutos para tu grupo: qué es trazar

«Trazar es hacer a mano, paso a paso, lo que haría la computadora. No adivinas el resultado: lo construyes.»

1
Estado inicial
Anota las variables con sus valores de partida.
2
Una línea por vez
Señala la línea actual. Nunca saltes dos.
3
Di qué hace
«Esta línea guarda 3 en n.»
4
Actualiza el estado
Escribe el nuevo valor en una fila nueva; no borres el anterior.
5
Decide la siguiente
¿Se cumple la condición? Salta donde corresponda. Al final: ¿qué logró el programa?

Cómo se representa la traza y cómo se practica

TemaCómo se representa la traza
Variables y buclesTabla con una columna por variable y una fila por paso
CondicionalesLa misma tabla, más una columna «¿se cumple?»
Páginas web y eventosDos dibujos del árbol de la página (antes y después) y una línea de tiempo de eventos
Consultas a bases de datosTabla de entrada, tabla tras cada cláusula y tabla final

Progresión: primero el docente traza en voz alta (trazado observado), después el grupo completa una tabla a medio llenar (trazado completado), luego traza con la tabla vacía, después con casos límite (n = 0, lista vacía) y, por último, traza su propio código antes de entregarlo.

Trampa a evitar: preguntar «¿qué muestra?» sin tabla, porque así se adivina.

Laboratorio de las cinco fases: suma de pares

Simulador

Dos clases de error

Un programa puede fallar porque no respeta las reglas de escritura del lenguaje: falta un signo, una palabra está mal escrita, la sangría no corresponde. El lenguaje no lo acepta y el programa no llega a ejecutarse. Esto se llama error de sintaxis.

Otro programa puede ejecutarse sin quejas y, sin embargo, hacer algo distinto de lo que se buscaba: es un error lógico. Los primeros producen un mensaje que señala la línea; los segundos no producen ningún mensaje.

Encontrar errores con método

Al proceso de localizar un error, explicar su causa y corregirlo se lo llama depurar (en inglés, debugging). McCauley y colegas (2008) revisaron la investigación sobre depuración en educación y concluyeron que depurar bien exige comprender el programa, formular hipótesis sobre la causa y ubicar el punto en que el comportamiento se aparta del esperado.

Quienes empiezan suelen saltear la comprensión y probar cambios al azar.

Aprender de errores puestos a propósito

Große y Renkl (2007) estudiaron ejemplos resueltos que contienen errores a propósito y encontraron que encontrarlos y corregirlos puede favorecer el aprendizaje, en especial cuando quien aprende tiene conocimientos previos suficientes o cuando el error está señalado.

En programación esto se traduce en programas con un error plantado: el foco está en razonar sobre el código, no en escribirlo. Un buen ejercicio de este tipo pide nombrar el tipo de error y la línea donde la ejecución se aparta de lo esperado.

Para recordar

Depurar
Comparar lo que el programa hace con lo que debería hacer, localizar dónde se separan, explicar la causa y corregirla.
Error plantado
Error puesto a propósito en un programa para que el grupo razone sobre el código y lo encuentre.
Quiénes lo trabajanGroße y Renkl, 2007McCauley et al., 2008

Simulador: encuentra el error plantado

Simulador

Implicancia práctica en el aula

  • Planifica cada clase con un programa de 6 a 10 líneas y una pregunta de predicción escrita antes de ejecutar; pide una frase y un nivel de confianza.
  • Enseña una rutina de trazado fija y úsala siempre igual.
  • Incluye en cada unidad al menos un programa con error plantado y pide que se nombre el tipo de error.
  • Organiza pares para predecir e investigar. En cursos sin interacción, reemplaza el par por predicción escrita, comparación con una explicación modelo y autoevaluación.
  • Reserva la fase de crear para cuando se traza con precisión; si falla el trazado, vuelve a predecir e investigar.
Lección 3

Del programa ajeno al programa propio

Cómo graduar, a lo largo de una unidad, el paso de usar un programa ajeno a crear uno propio, y cómo retirar los apoyos sin dejar a nadie atrás.

Sentir que el programa es propio

Quien recibe un programa ajeno y lo ejecuta lo usa como consumidor; quien lo cambia empieza a colaborar con quien lo escribió; quien lo construye es su autor. A esta relación creciente con el programa se la llama apropiación o sentido de propiedad (en inglés, ownership).

Al comienzo, un error es una mala lectura del código ajeno; al final, es una decisión de diseño propia. Trabajar primero con un programa que funciona ofrece, además, un modelo concreto de lo que significa «bien hecho».

Una progresión en tres etapas

Lee y colegas (2011) estudiaron cómo jóvenes desarrollaban formas de plantear y resolver problemas apoyadas en ideas de la computación (lo que se conoce como pensamiento computacional) y describieron una progresión en tres etapas: primero usar un artefacto computacional existente, después modificarlo y por último crear uno propio (datos del estudio a verificar).

En inglés se la conoce como Use-Modify-Create (UMC). Lytle y colegas (2019) la compararon con otras formas de secuenciar lecciones en clases de ciencias y matemáticas.

Usar lo aprendido en situaciones cada vez más distintas

Perkins y Salomon (1992) distinguieron dos formas de usar lo aprendido en una situación nueva: en un contexto muy parecido a aquel en que se aprendió (transferencia cercana) o en uno muy distinto (transferencia lejana). La segunda es más difícil y no ocurre sola: hay que prepararla.

Modificar el mismo programa es transferencia cercana; crear uno nuevo con el mismo patrón es un paso hacia la lejana.

Cómo se combina con la secuencia de cinco fases

Si la secuencia de la lección 2 organiza una clase, esta progresión organiza una unidad completa, y las dos encajan una dentro de la otra:

  • usar abarca predecir, ejecutar e investigar;
  • modificar corresponde a la cuarta fase;
  • crear, a la quinta.

La apropiación también es afectiva

Ryan y Deci (2000) mostraron que la motivación crece cuando la persona siente autonomía, se siente competente y se siente en vínculo con otras; a este marco lo llamaron teoría de la autodeterminación.

Incluir elección en la etapa de crear (el tema, el contexto, el aspecto del producto) fortalece la autonomía. En un estudio con placas programables, estudiantes valoraron especialmente poder crear algo «genial» y personal (Sentance et al., 2017).

Para recordar

Use-Modify-Create
Progresión de una unidad en tres etapas (usar, modificar, crear) en la que se gana autonomía sobre el código de forma gradual.
Transferencia
Usar lo aprendido en una situación nueva: cercana si se parece a la original, lejana si es muy distinta.
Quiénes lo trabajanPerkins y Salomon, 1992Ryan y Deci, 2000Lee et al., 2011Sentance et al., 2017Lytle et al., 2019

La progresión en una unidad

U
Usar
La o el estudiante consume
Predecir · Ejecutar · Investigar
Ejecuta y observaun programa que ya funciona.Lectura, anticipación, reconocimiento de patrones, comprensión del comportamiento.
M
Modificar
La o el estudiante colabora
Modificar
Altera partesy observa el efecto.Descomposición, causa y efecto, búsqueda de errores, distinguir qué parte hace qué.
C
Crear
La o el estudiante es autor
Crear
Construyeun programa propio.Diseño de algoritmos, planificación, integración, evaluación de su propia solución.
Apropiación gradualLee et al., 2011Lytle et al., 2019

Actividad: ordena la serie de modificaciones

Práctica docente

Retirar el apoyo de a poco

El andamiaje de la lección 1 es temporal por definición: un apoyo ajustado a lo que la persona necesita, que se retira cuando ya no hace falta (Walqui, 2006).

Renkl y Atkinson (2003) estudiaron cómo pasar de estudiar ejemplos resueltos a resolver problemas sin ayuda. Propusieron quitar un paso resuelto por vez: primero el ejemplo completo, luego con un paso faltante, luego con dos, hasta que solo queda el enunciado. Llamaron a esta retirada gradual desvanecimiento (en inglés, fading).

Lo que ayuda a una persona estorba a otra

Kalyuga, Ayres, Chandler y Sweller (2003) mostraron que un apoyo que ayuda a quien recién empieza puede perjudicar a quien ya domina el tema, porque le obliga a procesar información que ya sabe y que se vuelve redundante. Lo llamaron efecto de inversión de la pericia.

Salden, Aleven, Schwonke y Renkl (2010) encontraron que retirar los apoyos según el desempeño de cada estudiante da mejores resultados que hacerlo en un orden fijo para todo el grupo: es el desvanecimiento adaptativo.

Ordenar en lugar de escribir

Parsons y Haden (2006) propusieron ejercicios en los que se entregan, desordenadas, las líneas de un programa correcto, y hay que armarlo. Hoy se los conoce como problemas de Parsons. Ericson, Foley y Rick (2018) encontraron que llevan menos tiempo que escribir el código equivalente, con ganancias de aprendizaje similares.

Admiten variantes: con líneas que sobran (llamadas distractores), con sangría que hay que decidir, con rótulos de subobjetivos o con huecos para completar. Después de armarlos conviene pedir siempre la traza y el propósito.

Cuidar la confianza

Bandura (1997) llamó autoeficacia a la creencia de una persona en su capacidad para lograr algo. Crece sobre todo con experiencias de logro y cae con fracasos repetidos.

Por eso conviene que nadie acumule más de dos fallos seguidos sin una salida: una pista, un apoyo más o un ejemplo parecido resuelto.

Para recordar

Desvanecimiento
Retiro gradual de los apoyos, paso a paso, hasta que la persona resuelve sola. Funciona mejor cuando se ajusta al desempeño de cada estudiante.
Inversión de la pericia
Un apoyo que ayuda a quien recién empieza puede estorbar a quien ya domina el tema.
Quiénes lo trabajanBandura, 1997Kalyuga et al., 2003Renkl y Atkinson, 2003Parsons y Haden, 2006Walqui, 2006Salden et al., 2010Ericson, Foley y Rick, 2018

Cuatro decisiones para pasar de modificar a crear

Es el paso más difícil: desaparece el programa de partida y reaparece el editor en blanco.

1Modificar en serie de dificultad crecientePrimero cambios de valor, después de estructura y al final extensiones de funcionalidad. Cada paso aumenta la parte que escribe el o la estudiante.
2Crear con el mismo patrón y otro contextoLa primera creación reutiliza las estructuras trabajadas en un problema distinto: se transfiere sin inventar a la vez el patrón y el problema.
3Crear con un plan previoAntes del código, se escribe qué debe lograr el programa y un plan en lenguaje natural o en pseudocódigo.
4Apoyos que se retiranPistas, un problema de Parsons o un esqueleto con huecos, que se retiran según el desempeño y no según el calendario.

Simulador: problema de Parsons con apoyo que se retira

Simulador

Simulador docente: mueve a una estudiante por la escalera

Simulador

Implicancia práctica en el aula

  • Comienza cada tema nuevo en la etapa de usar, aunque el grupo ya conozca otros temas.
  • Planifica una serie de tres a cinco modificaciones ordenadas por dificultad antes de la primera tarea de creación.
  • Pide qué debe lograr el programa y un plan escrito antes de abrir el editor, y revisa ese plan antes del código.
  • Ofrece un esqueleto o un problema de Parsons como apoyo opcional, y retíralo de forma progresiva.
  • Decide el paso a crear por el desempeño en trazado y modificación, no por la fecha.
Lección 4

Cómo se arma una buena explicación

Cómo moverse entre el lenguaje técnico y los ejemplos cotidianos para que un concepto abstracto se comprenda y, sobre todo, se pueda volver a usar.

El conocimiento que no se acumula

Karl Maton, sociólogo de la educación, se preguntó por qué en algunas aulas el conocimiento se acumula (lo aprendido hoy sirve para entender lo de mañana) y en otras queda segmentado: cada tema queda atado a la situación en que se aprendió y no se lleva a otras (Maton, 2009).

Retomó el trabajo de Bernstein (1999) sobre cómo se organizan los distintos saberes y desarrolló un marco para analizar prácticas educativas, que llamó Teoría de los Códigos de Legitimación (LCT, por su sigla en inglés).

Cuánto depende un significado de su contexto

La frase «este botón cambia este texto» solo tiene sentido frente a esa pantalla; la frase «un evento dispara una función registrada» vale para cualquier programa.

Maton (2013, 2014) llamó gravedad semántica a esa dependencia del contexto: es fuerte cuando el significado está atado a un caso concreto y débil cuando es general y abstracto.

Cuánto significado condensa una palabra

La palabra «iteración» condensa muchas ideas: repetición, contador, condición de corte, cuerpo del bucle. La palabra «repetir» condensa pocas. Maton llamó densidad semántica a esa condensación: es alta en los términos técnicos y baja en el lenguaje cotidiano.

Quien tiene experiencia pasa de un extremo al otro sin esfuerzo y a menudo no advierte cuánto significado comprime en una sola palabra. El o la joven estudiante necesita, sobre todo, aprender a hacer ese recorrido.

Para recordar

Gravedad semántica
Cuánto depende un significado de su contexto. Fuerte: atado a un caso concreto. Débil: general y abstracto.
Densidad semántica
Cuánto significado condensa un término. Alta: técnico y denso. Baja: cotidiano y simple.
Quiénes lo trabajanBernstein, 1999Maton, 2009Maton, 2013Maton, 2014

Actividad: ubica cada frase según su gravedad y su densidad

Práctica docente

Bajar y volver a subir

Maton (2013) observó que en las clases donde el conocimiento se acumula aparece un movimiento característico. El o la docente parte de un concepto técnico y abstracto y lo descompone con palabras simples, ejemplos o analogías: aumenta la gravedad y baja la densidad. A este primer movimiento lo llamó desempaquetar (unpacking).

Después vuelve al término técnico, ahora cargado de sentido, y lo usa en otro contexto: reempaquetar (repacking). Dibujado en un gráfico, el recorrido parece una ola, y así lo llamó: ola semántica.

En las clases de computación

Curzon, McOwan, Donohue, Wright y Mars (2018) llevaron la idea a la enseñanza de la computación. Las actividades que enseñan ideas de computación con juegos, tarjetas o el cuerpo, sin computadoras, se conocen como computación desenchufada (unplugged; Bell, Witten y Fellows, 1998).

Waite, Maton, Curzon y Tuttiett (2019) analizaron con olas semánticas una de ellas, en la que una persona describe un dibujo para que otra lo reproduzca sin verlo. Curzon, Waite, Maton y Donohue (2020) mostraron que la efectividad de estas actividades depende de que se reconecten con el concepto.

Toda analogía tiene un límite

Gentner (1983) explicó que una analogía funciona porque traslada relaciones de un dominio conocido a uno nuevo, pero dos dominios nunca coinciden en todo.

La caja sirve para la variable hasta que aparece x = x + 1: una caja no explica que primero se evalúa el lado derecho y después se guarda el resultado.

Formas de la ola

La ola puede empezar y terminar en el término técnico, para que se sepa a dónde se va: forma de U. O puede partir de un ejemplo concreto, subir a la técnica y volver a aplicarla: forma de n.

También se pueden anidar olas pequeñas dentro de una mayor, una por cada subconcepto (Raspberry Pi Foundation, 2025b).

Recorridos problemáticos

Cuando el recorrido no ondula aparecen tres perfiles problemáticos:

Qué ocurre en la claseEfecto en el aprendizajeCómo se lo llama
Solo lenguaje técnico y contextos abstractosEl vocabulario no tiene dónde anclarse y no se comprendePlano alto
Solo lenguaje y ejemplos simples; no se vuelve al conceptoSe entiende el juego o la receta, pero no se vincula con el algoritmo ni con el término técnicoPlano bajo
Se desempaqueta y no se reempaqueta; la clase sigueEl concepto queda a medio construirEscalera descendente

Una cautela sobre la evidencia

Los propios autores presentan buena parte de estos consejos como experiencia de aula y no como hallazgos de estudios controlados (Raspberry Pi Foundation, 2025b). Son una herramienta para analizar y planificar, no una fórmula demostrada.

Waite, Kolaiti, Thomas y Maton (2023) propusieron usarlos también para escribir la devolución de preguntas de opción múltiple: si una respuesta se queda en lo concreto, la devolución invita a subir; si se queda en lo técnico, a bajar. La evaluación final usa esa idea.

Para recordar

Ola semántica
Recorrido de una explicación que baja de lo técnico a lo concreto (desempaquetar) y vuelve a subir al término técnico, ahora con sentido (reempaquetar).
Plano bajo
Explicación que se queda en lo concreto y no vuelve al concepto: el riesgo más habitual de las actividades lúdicas.
Quiénes lo trabajanGentner, 1983Bell, Witten y Fellows, 1998Maton, 2013Curzon et al., 2018Waite et al., 2019Curzon et al., 2020Waite et al., 2023Raspberry Pi Foundation, 2025

Dos olas documentadas

Muestras la necesidad de «hacerlo 100 veces», escribes 100 líneas iguales, pasas a «repetir 100 veces» en pseudocódigo y llegas a la sintaxis del lenguaje. Luego vuelves al término «iteración» y lo usas en otros casos (Raspberry Pi Foundation, 2025b).

Deja de funcionar cuando la imagen de un lazo oculta que el contador cambia en cada vuelta. Dilo en voz alta y traza el contador.

Cajas de papel para la variable: meter, copiar, reemplazar. Después, una traza en papel, para que no se concluya que «una variable es una caja» sin matices (Raspberry Pi Foundation, 2025b).

Deja de funcionar cuando aparece x = x + 1: la caja no explica que no es una ecuación ni que se evalúa primero el lado derecho.

El cierre tiene cuatro elementos

Toda actividad que desempaqueta cierra con el término técnico exacto, el punto donde la analogía deja de funcionar, una aplicación en código en un contexto nuevo y una explicación con palabras propias. Recordar el juego no equivale a comprender la iteración (Curzon et al., 2020).

Simulador: construye y diagnostica tu ola

Simulador

Implicancia práctica en el aula

  • Antes de la clase, dibuja el perfil de tu explicación con flechas hacia abajo (simple, concreto) y hacia arriba (técnico, abstracto). Si termina abajo sin haber vuelto a subir, falta el reempaquetado.
  • Anota, para cada analogía, el punto en que deja de funcionar y dilo en voz alta («esto es como una caja, hasta que...»).
  • Cierra cada ola con el término técnico exacto, un ejemplo de código en un contexto nuevo con traza y una explicación del propósito escrita por cada estudiante.
  • Combina actividades de rol o físicas con una traza en papel posterior, de modo que cada ola siga a otra.
Lección 5

Pensar en distintos planos

Entre qué planos se mueve quien programa, del problema a la ejecución, y cómo enseñar a explicar para qué sirve un programa.

Quedarse con lo esencial

Un mapa del transporte público conserva las estaciones y sus conexiones y omite las distancias reales y las calles: se queda con lo que importa para un propósito y deja de lado lo demás. A esa operación se la llama abstraer.

Wing (2006, 2008) la ubicó en el centro de lo que llamó pensamiento computacional: la forma de plantear y resolver problemas apoyada en ideas de la computación. Kramer (2007) la señaló como la habilidad clave de toda la disciplina.

Cuatro planos para pensar un programa

Perrenet, Groote y Kaasenbrood (2005) estudiaron cómo entienden estudiantes el concepto de algoritmo y distinguieron distintos planos desde los que se lo puede pensar: el problema, el algoritmo, el programa y su ejecución.

Cutts, Esper, Fecho, Foster y Simon (2012) describieron los pasajes entre el lenguaje del problema, el de la computación y el código, en lo que llamaron Taxonomía de Transición de Abstracción. Waite, Curzon, Marsh y Sentance (2018) adaptaron estas ideas a la enseñanza escolar en cuatro planos, que llamaron niveles de abstracción.

Los cuatro niveles

1
Problema
Qué lograr
Lenguaje cotidiano
Describir en lenguaje natural lo que debe lograr el programa. No se discute cómo resolverlo.
2
Diseño
Cómo planificarlo
Lógico y neutral
Planificar con un esquema, un diagrama de flujo o pseudocódigo, sin referirse a un lenguaje de programación.
3
Código
Cómo escribirlo
Propio del lenguaje
Implementar el plan con la sintaxis concreta de un lenguaje. Con placas, incluye armar el circuito.
4
Ejecución
Qué se observa
Observar y comparar
Correr el programa, probar y buscar errores; comparar lo observado con el plan y con el problema.
Ida y vuelta entre planosWaite et al., 2018Raspberry Pi Foundation, 2025a

Ir y volver

Lo que debe dominar el o la estudiante es el movimiento en ambos sentidos: del problema al diseño, del diseño al código, del código a la ejecución, y también al revés: comparar lo que ocurre al ejecutar con el problema original, o comprobar el código contra el plan.

La Raspberry Pi Foundation (2025a) recomienda tres prácticas: no mezclar planos en una misma conversación, usar el vocabulario propio de cada plano (los nombres del lenguaje, solo en el plano del código) y empezar por el plano más alto antes de bajar.

Con la secuencia de la lección 2: predecir y ejecutar conectan el código con la ejecución; investigar recorre los cuatro planos al preguntar qué hace el código y para qué sirve; crear exige subir hasta el problema y el diseño antes de bajar al código.

Para recordar

Abstraer
Quedarse con lo esencial para un propósito y dejar de lado los detalles que no importan.
Niveles de abstracción
Cuatro planos desde los que se piensa un programa: problema, diseño, código y ejecución. Programar es moverse entre ellos en ambos sentidos.
Quiénes lo trabajanPerrenet, Groote y Kaasenbrood, 2005Wing, 2006, 2008Kramer, 2007Cutts et al., 2012Waite et al., 2018Raspberry Pi Foundation, 2025

Actividad: ¿en qué plano está cada fragmento?

Práctica docente

Cómo se organiza una respuesta

Biggs y Collis (1982) propusieron clasificar las respuestas de estudiantes no por si son correctas, sino por cómo están organizadas. Distinguieron cinco niveles: la respuesta no capta el punto (preestructural); maneja un solo elemento relevante (uniestructural); maneja varios elementos, pero sueltos (multiestructural); los integra en un todo con sentido (relacional), o además generaliza a casos nuevos (abstracto extendido).

Por las iniciales en inglés de «estructura del resultado de aprendizaje observado», se la conoce como taxonomía SOLO.

Aplicada a la lectura de código

Lister, Simon, Thompson, Whalley y Prasad (2006) y Whalley y colegas (2006) pidieron a estudiantes que explicaran fragmentos de código y clasificaron las respuestas con esa taxonomía. Quienes describían el propósito general del código (respuesta relacional) comprendían mejor y rendían mejor en otras tareas que quienes lo narraban línea por línea (respuesta multiestructural).

A este tipo de consigna se la conoce como pregunta de explicar en lenguaje llano (en inglés, explain in plain English; Murphy, McCauley y Fitzgerald, 2012). El modelo de bloques de Schulte (2008), de la lección 2, distingue justamente qué hace el código de para qué sirve.

Explicarse a uno mismo

Chi, Bassok, Lewis, Reimann y Glaser (1989) observaron a estudiantes de física mientras estudiaban ejemplos resueltos. Quienes se explicaban a sí mismos por qué se daba cada paso aprendían más que quienes solo lo leían. Lo llamaron autoexplicación.

Preguntas como «¿por qué se hace este paso?» o «¿para qué sirve este bloque?» la estimulan.

Una escala para el aula

De esta evidencia se desprende una escala de cinco niveles para registrar cómo explica cada estudiante un programa. El nivel E3 es el objetivo central: decir para qué sirve el programa sin nombrar sus variables.

Cómo explicaEjemplo con un bucle que sumaNivel
Repite el código en palabras«total igual a cero, for número in números, total igual total más número»E0
Línea por línea, de forma correcta«Pone total en 0, luego recorre cada número y lo suma a total»E1
Por bloques con rótulos«Inicializa, recorre y acumula»E2
Propósito general sin nombrar variables«Calcula la suma de una lista de números»E3
Propósito y casos límite«Suma una lista; si está vacía, devuelve 0»E4

Una advertencia metodológica

Explicar el código es más un paso previo que un resultado: quien no logra decir qué hace un programa difícilmente escribirá uno que haga algo concreto.

Pero la relación entre explicar y escribir es correlacional en los estudios citados (Venables, Tan y Lister, 2009): muestra que van juntas y sugiere una secuencia didáctica, pero no prueba por sí sola que enseñar a explicar cause mejor escritura.

Para recordar

Taxonomía SOLO
Clasificación de respuestas según su organización: de no captar el punto, a manejar elementos sueltos, a integrarlos en un todo y generalizar.
Autoexplicación
Explicarse a uno mismo por qué se da cada paso; mejora la comprensión.
Quiénes lo trabajanBiggs y Collis, 1982Chi et al., 1989Lister et al., 2006Whalley et al., 2006Schulte, 2008Venables, Tan y Lister, 2009Murphy, McCauley y Fitzgerald, 2012

Actividad: clasifica explicaciones de estudiantes

Práctica docente

Implicancia práctica en el aula

  • Etiqueta cada actividad con su plano y mantén el lenguaje de ese plano. Pide el problema y el plan por escrito antes de abrir el editor.
  • Haz recorrer los planos en ambos sentidos: a partir de un código dado, que se reconstruya el plan y el problema.
  • Incluye en cada ejercicio una pregunta de propósito («¿para qué sirve este programa?, ¿dónde lo usarías?») y registra el nivel E alcanzado.
  • Corrige la explicación por la lógica y el propósito, no por una redacción exacta.
Lección 6

Programar objetos que se tocan

Qué aporta programar placas que interactúan con el mundo físico y cómo integrarlas sin perder de vista la comprensión del código.

Programas que salen de la pantalla

Hay placas pequeñas que se programan desde la computadora y después funcionan solas. Leen el entorno con dispositivos que miden luz, temperatura, movimiento o si se pulsó un botón, llamados sensores, y actúan sobre él con luces, sonidos o motores, llamados actuadores.

Programar estas placas para que interactúen con el mundo físico se conoce como computación física (physical computing). La micro:bit, una placa con 25 luces, dos botones y varios sensores, es una de las más usadas en escuelas.

Aprender construyendo objetos

Papert (1980), y luego Papert y Harel (1991), propusieron que se aprende especialmente bien cuando se construye un objeto que se puede mostrar, compartir y discutir; llamaron a esta idea construccionismo.

Hodges, Sentance, Finney y Ball (2020) defendieron la computación física como un elemento clave de la educación en computación. Sentance, Waite, Hodges, MacLeod y Yeomans (2017) y Kalelioğlu y Sentance (2020) describieron su uso en escuelas desde la experiencia de estudiantes y docentes.

Un puente con las lecciones anteriores

Un sensor y un actuador hacen visible la estructura de entrada, proceso y salida de todo programa: recibe datos, los transforma y produce un resultado.

Pulsar un botón es una experiencia física de lo que en programación se llama evento: algo que ocurre y dispara una acción registrada de antemano. Y un programa con un error plantado se vuelve visible cuando el dispositivo no hace lo previsto.

Para recordar

Computación física
Programar placas que leen el entorno con sensores y actúan sobre él con actuadores, para que el programa interactúe con el mundo físico.
Construccionismo
Se aprende especialmente bien construyendo un objeto que se puede mostrar, compartir y discutir.
Quiénes lo trabajanPapert, 1980Papert y Harel, 1991Sentance et al., 2017Hodges et al., 2020Kalelioğlu y Sentance, 2020

Tres aportes que se repiten en la literatura

Toca cada tarjeta para voltearla.

Información sobre el propio desempeño

Hattie y Timperley (2007) definieron la retroalimentación como la información sobre el propio desempeño que permite reducir la distancia entre dónde se está y a dónde se quiere llegar. La más útil responde a tres preguntas: ¿a dónde voy?, ¿cómo voy?, ¿qué sigue?

Una placa ofrece una respuesta inmediata: el resultado del programa se ve en segundos.

El estado afuera de la cabeza

Zhang y Norman (1994) mostraron que lo que está anotado, dibujado o visible alivia a la memoria de trabajo, porque parte del problema queda «afuera»; lo llamaron representación externa.

En una placa, el resultado de ejecutar el programa (una luz, un número en la matriz) es visible: el o la estudiante no tiene que sostenerlo solo en la cabeza y puede contrastarlo con lo que anticipó.

Dos representaciones del mismo programa

Muchos entornos muestran el programa en bloques encastrables y en texto a la vez. Ainsworth (2006) mostró que aprender con varias representaciones de lo mismo ayuda cuando se enseña a pasar de una a otra; lo llamó aprendizaje con representaciones múltiples.

Weintrop y Wilensky (2017) compararon clases que programaban con bloques y con texto y reportaron ventajas de los bloques en el aprendizaje inicial (a verificar).

Tres cautelas

  1. La reducción de carga por la respuesta física inmediata es una inferencia razonable desde la teoría de la lección 1, no un resultado medido de forma directa en los trabajos citados (a verificar).
  2. El objeto físico agrega su propia carga extrínseca: cables, conexiones, calibración, fallas. Un error que no está en el código puede confundir a quien todavía no distingue entre ambos.
  3. El riesgo de plano bajo (lección 4) es alto: construir el dispositivo no equivale a comprender la estructura de control. Conviene cerrar cada proyecto con traza y explicación del propósito.

Para recordar

Retroalimentación
Información sobre el propio desempeño que permite reducir la distancia entre dónde se está y a dónde se quiere llegar.
Representación externa
Lo que queda anotado, dibujado o visible y alivia a la memoria de trabajo.
Quiénes lo trabajanZhang y Norman, 1994Sweller, van Merriënboer y Paas, 1998Ainsworth, 2006Hattie y Timperley, 2007Weintrop y Wilensky, 2017

Simulador micro:bit con las cinco fases

Simulador

Implicancia práctica en el aula

  • Planifica con la progresión de usar, modificar y crear: primero un programa de micro:bit que funciona y se anticipa, después modificaciones pequeñas y por último un proyecto propio.
  • Pide una predicción antes de cargar cada programa, y después traza y explicación del propósito (E3).
  • Separa las fallas físicas de los errores de código con una lista de verificación previa (conexión, batería, pin) antes de depurar.
  • Usa la vista de bloques y la de texto para mostrar la misma lógica, y pide identificar qué bloque corresponde a cada línea.
  • Si no hay placas para todo el grupo o el curso es a distancia, usa el simulador y mantén la misma secuencia.
Lección 7

Integración, evaluación y ficha para tu aula

Los temas se encajan entre sí: la progresión de usar, modificar y crear ordena la unidad; las cinco fases ordenan cada clase; el trazado y la explicación atraviesan todas las fases; las olas ordenan cada explicación, y los planos ordenan el lenguaje.

Fase de la claseEtapa de la unidadTrazadoExplicaciónOla semántica
PredecirUsarTabla antes de ejecutarPredicción en una fraseDesempaqueta ↓
EjecutarUsarMarca la primera fila que se separóQué me sorprendióConcreto ↓
InvestigarUsarTraza con subobjetivosDe E1 a E3Empieza a subir ↑
ModificarModificarPredice cómo cambia la trazaPor qué funciona el cambioContexto nuevo ↑
CrearCrearTraza su código con un caso mínimoE4: propósito y caso límiteReempaqueta ↑

Tus decisiones a la luz de la teoría

Evaluación

Ficha de ejercicio: planifica tu primera clase

Herramienta

A – B

  • Ainsworth, S. (2006). DeFT: A conceptual framework for considering learning with multiple representations. Learning and Instruction, 16(3), 183–198.
  • Ausubel, D. P. (1968). Educational psychology: A cognitive view. Holt, Rinehart and Winston.
  • Baddeley, A. D., & Hitch, G. (1974). Working memory. En G. H. Bower (Ed.), The psychology of learning and motivation (Vol. 8, pp. 47–89). Academic Press.
  • Bandura, A. (1997). Self-efficacy: The exercise of control. W. H. Freeman.
  • Bartlett, F. C. (1932). Remembering: A study in experimental and social psychology. Cambridge University Press.
  • Becker, B. A., Denny, P., et al. (2019). Compiler error messages considered unhelpful: The landscape of text-based programming error message research. ITiCSE-WGR '19. (a verificar)
  • Bell, T., Witten, I. H., & Fellows, M. (1998). Computer Science Unplugged: Off-line activities and games for all ages. (a verificar)
  • Bernstein, B. (1999). Vertical and horizontal discourse: An essay. British Journal of Sociology of Education, 20(2), 157–173.
  • Biggs, J. B., & Collis, K. F. (1982). Evaluating the quality of learning: The SOLO taxonomy. Academic Press.
  • Bruner, J. S. (1960). The process of education. Harvard University Press.
  • Bruner, J. S. (1961). The act of discovery. Harvard Educational Review, 31, 21–32.

C – E

  • Chi, M. T. H., Bassok, M., Lewis, M. W., Reimann, P., & Glaser, R. (1989). Self-explanations: How students study and use examples in learning to solve problems. Cognitive Science, 13(2), 145–182.
  • Chi, M. T. H., de Leeuw, N., Chiu, M.-H., & LaVancher, C. (1994). Eliciting self-explanations improves understanding. Cognitive Science, 18(3), 439–477.
  • Cowan, N. (2001). The magical number 4 in short-term memory: A reconsideration of mental storage capacity. Behavioral and Brain Sciences, 24(1), 87–114.
  • Curzon, P., McOwan, P. W., Donohue, J., Wright, S., & Mars, D. W. (2018). Teaching computer science concepts. En S. Sentance, E. Barendsen y C. Schulte (Eds.), Computer science education. Bloomsbury.
  • Curzon, P., Waite, J., Maton, K., & Donohue, J. (2020). Using semantic waves to analyse the effectiveness of unplugged computing activities. WiPSCE '20, 1–10.
  • Cutts, Q., Esper, S., Fecho, M., Foster, S. R., & Simon, B. (2012). The abstraction transition taxonomy: Developing desired learning outcomes through the lens of situated cognition. ICER '12, 63–70.
  • Dewey, J. (1938). Experience and education. Macmillan.
  • du Boulay, B. (1986). Some difficulties of learning to program. Journal of Educational Computing Research, 2(1), 57–73.
  • Dunlosky, J., Rawson, K. A., Marsh, E. J., Nathan, M. J., & Willingham, D. T. (2013). Improving students' learning with effective learning techniques. Psychological Science in the Public Interest, 14(1), 4–58.
  • Ericson, B. J., Foley, J. D., & Rick, J. (2018). Evaluating the efficiency and effectiveness of adaptive Parsons problems. ICER '18. (a verificar)
  • Ericsson, K. A., Krampe, R. T., & Tesch-Römer, C. (1993). The role of deliberate practice in the acquisition of expert performance. Psychological Review, 100(3), 363–406.

F – H

  • Fitzgerald, S., Simon, B., & Thomas, L. (2005). Strategies that students use to trace code: An analysis based in grounded theory. ICER '05. (a verificar)
  • Flavell, J. H. (1979). Metacognition and cognitive monitoring. American Psychologist, 34(10), 906–911.
  • Fyfe, E. R., McNeil, N. M., Son, J. Y., & Goldstone, R. L. (2014). Concreteness fading in mathematics and science instruction: A systematic review. Educational Psychology Review, 26(1), 9–25.
  • Gentner, D. (1983). Structure-mapping: A theoretical framework for analogy. Cognitive Science, 7(2), 155–170.
  • Große, C. S., & Renkl, A. (2007). Finding and fixing errors in worked examples: Can this foster learning outcomes? Learning and Instruction, 17(6), 612–634.
  • Hattie, J., & Timperley, H. (2007). The power of feedback. Review of Educational Research, 77(1), 81–112.
  • Hmelo-Silver, C. E., Duncan, R. G., & Chinn, C. A. (2007). Scaffolding and achievement in problem-based and inquiry learning. Educational Psychologist, 42(2), 99–107.
  • Hodges, S., Sentance, S., Finney, J., & Ball, T. (2020). Physical computing: A key element of modern computer science education. Computer, 53(4). (a verificar)

J – K

  • Johnson-Laird, P. N. (1983). Mental models. Cambridge University Press.
  • Kalelioğlu, F., & Sentance, S. (2020). Teaching with physical computing in school: The case of the micro:bit. Education and Information Technologies, 25. (paginación a verificar)
  • Kalyuga, S., Ayres, P., Chandler, P., & Sweller, J. (2003). The expertise reversal effect. Educational Psychologist, 38(1), 23–31.
  • Kapur, M. (2008). Productive failure. Cognition and Instruction, 26(3), 379–424.
  • Kirschner, P. A., Sweller, J., & Clark, R. E. (2006). Why minimal guidance during instruction does not work. Educational Psychologist, 41(2), 75–86.
  • Kolb, D. A. (1984). Experiential learning: Experience as the source of learning and development. Prentice-Hall.
  • Kramer, J. (2007). Is abstraction the key to computing? Communications of the ACM, 50(4), 36–42.

L

  • Lee, I., Martin, F., Denner, J., Coulter, B., Allan, W., Erickson, J., Malyn-Smith, J., & Werner, L. (2011). Computational thinking for youth in practice. ACM Inroads, 2(1), 32–37. (lista de autores a verificar)
  • Lister, R. (2011). Concrete and other neo-Piagetian forms of reasoning in the novice programmer. ACE 2011. (a verificar)
  • Lister, R., Adams, E. S., Fitzgerald, S., Fone, W., Hamer, J., Lindholm, M., McCartney, R., Moström, J. E., Sanders, K., Seppälä, O., Simon, B., & Thomas, L. (2004). A multi-national study of reading and tracing skills in novice programmers. ACM SIGCSE Bulletin, 36(4), 119–150.
  • Lister, R., Simon, B., Thompson, E., Whalley, J. L., & Prasad, C. (2006). Not seeing the forest for the trees: Novice programmers and the SOLO taxonomy. ITiCSE '06. (a verificar)
  • Lopez, M., Whalley, J., Robbins, P., & Lister, R. (2008). Relationships between reading, tracing and writing skills in introductory programming. ICER '08. (a verificar)
  • Lytle, N., et al. (2019). Use, modify, create: Comparing computational thinking lesson progressions for STEM classes. ITiCSE '19. (a verificar)

M

  • Margulieux, L. E., Catrambone, R., & Guzdial, M. (2016). Employing subgoals in computer programming education. Computer Science Education, 26(1), 44–67. (a verificar)
  • Marton, F., & Booth, S. (1997). Learning and awareness. Lawrence Erlbaum.
  • Maton, K. (2009). Cumulative and segmented learning: Exploring the role of curriculum structures in knowledge-building. British Journal of Sociology of Education, 30(1), 43–57.
  • Maton, K. (2013). Making semantic waves: A key to cumulative knowledge-building. Linguistics and Education, 24(1), 8–22.
  • Maton, K. (2014). Knowledge and knowers: Towards a realist sociology of education. Routledge.
  • McCauley, R., Fitzgerald, S., Lewandowski, G., Murphy, L., Simon, B., Thomas, L., & Zander, C. (2008). Debugging: A review of the literature from an educational perspective. Computer Science Education, 18(2), 67–92.
  • McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L., Utting, I., & Wilusz, T. (2001). A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. ACM SIGCSE Bulletin, 33(4), 125–180.
  • Miller, G. A. (1956). The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychological Review, 63(2), 81–97.
  • Murphy, L., McCauley, R., & Fitzgerald, S. (2012). 'Explain in plain English' questions: Implications for teaching. SIGCSE '12. (a verificar)

P

  • Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. Basic Books.
  • Papert, S., & Harel, I. (1991). Situating constructionism. En I. Harel y S. Papert (Eds.), Constructionism. Ablex.
  • Parsons, D., & Haden, P. (2006). Parson's programming puzzles: A fun and effective learning tool for first programming courses. ACE '06. (a verificar)
  • Perkins, D. N., Hancock, C., Hobbs, R., Martin, F., & Simmons, R. (1986). Conditions of learning in novice programmers. Journal of Educational Computing Research, 2(1), 37–55.
  • Perkins, D. N., & Salomon, G. (1992). Transfer of learning. En T. Husén y T. N. Postlethwaite (Eds.), International encyclopedia of education (2.ª ed.). Pergamon.
  • Perrenet, J., Groote, J. F., & Kaasenbrood, E. (2005). Exploring students' understanding of the concept of algorithm: Levels of abstraction. ITiCSE '05. (a verificar)
  • Piaget, J. (1952). The origins of intelligence in children. International Universities Press.
  • Pólya, G. (1945). How to solve it. Princeton University Press.
  • Posner, G. J., Strike, K. A., Hewson, P. W., & Gertzog, W. A. (1982). Accommodation of a scientific conception: Toward a theory of conceptual change. Science Education, 66(2), 211–227.

R

  • Raspberry Pi Foundation. (2023). Pedagogy quick read: PRIMM (V4). Enlace
  • Raspberry Pi Foundation. (2025a). Pedagogy quick read: Levels of abstraction. Enlace
  • Raspberry Pi Foundation. (2025b). Improving explanations and learning activities in computing using semantic waves. Enlace. Véase también Teaching London Computing, Semantic waves in computing: Q&A. Enlace
  • Renkl, A., & Atkinson, R. K. (2003). Structuring the transition from example study to problem solving in cognitive skill acquisition: A cognitive load perspective. Educational Psychologist, 38(1), 15–22.
  • Roediger, H. L., & Karpicke, J. D. (2006). Test-enhanced learning: Taking memory tests improves long-term retention. Psychological Science, 17(3), 249–255.
  • Rosenshine, B. (2012). Principles of instruction: Research-based strategies that all teachers should know. American Educator, 36(1), 12–19, 39.
  • Ryan, R. M., & Deci, E. L. (2000). Self-determination theory and the facilitation of intrinsic motivation, social development, and well-being. American Psychologist, 55(1), 68–78.

S

  • Salden, R. J. C. M., Aleven, V., Schwonke, R., & Renkl, A. (2010). The expertise reversal effect and worked examples in tutored problem solving. Instructional Science, 38(3), 289–307. (a verificar)
  • Schulte, C. (2008). Block model: An educational model of program comprehension as a tool for a scholarly approach to teaching. ICER '08, 149–160.
  • Sentance, S., & Waite, J. (2017). PRIMM: Exploring pedagogical approaches for teaching text-based programming in school. WiPSCE '17. (a verificar)
  • Sentance, S., Waite, J., Hodges, S., MacLeod, E., & Yeomans, L. (2017). "Creating cool stuff": Pupils' experience of the BBC micro:bit. SIGCSE '17. (a verificar)
  • Sentance, S., Waite, J., & Kallia, M. (2019). Teaching computer programming with PRIMM: A sociocultural perspective. Computer Science Education, 29(2–3), 136–176.
  • Shute, V. J. (2008). Focus on formative feedback. Review of Educational Research, 78(1), 153–189.
  • Slamecka, N. J., & Graf, P. (1978). The generation effect: Delineation of a phenomenon. Journal of Experimental Psychology: Human Learning and Memory, 4(6), 592–604.
  • Sorva, J. (2013). Notional machines and introductory programming education. ACM Transactions on Computing Education, 13(2).
  • Sweller, J. (1988). Cognitive load during problem solving: Effects on learning. Cognitive Science, 12(2), 257–285.
  • Sweller, J., & Cooper, G. A. (1985). The use of worked examples as a substitute for problem solving in learning algebra. Cognition and Instruction, 2(1), 59–89.
  • Sweller, J., van Merriënboer, J. J. G., & Paas, F. G. W. C. (1998). Cognitive architecture and instructional design. Educational Psychology Review, 10(3), 251–296.

T – W

  • Tomlinson, C. A. (2001). How to differentiate instruction in mixed-ability classrooms (2.ª ed.). ASCD.
  • Turkle, S., & Papert, S. (1990). Epistemological pluralism: Styles and voices within the computer culture. Signs, 16(1), 128–157.
  • Venables, A., Tan, G., & Lister, R. (2009). A closer look at tracing, explaining and code writing skills in the novice programmer. ICER '09, 117–128.
  • Vygotsky, L. S. (1978). Mind in society: The development of higher psychological processes. Harvard University Press.
  • Waite, J., Kolaiti, P., Thomas, M., & Maton, K. (2023). Constructing feedback for computer science MCQ wrong answers using semantic profiling. Koli Calling '23.
  • Waite, J., Maton, K., Curzon, P., & Tuttiett, L. (2019). Unplugged computing and semantic waves: Analysing crazy characters. UKICER 2019.
  • Waite, J. L., Curzon, P., Marsh, W., & Sentance, S. (2018). Abstraction in action: K-5 teachers' uses of levels of abstraction, particularly the design level, in teaching programming. (título y revista a verificar)
  • Walqui, A. (2006). Scaffolding instruction for English language learners: A conceptual framework. International Journal of Bilingual Education and Bilingualism, 9(2), 159–180.
  • Weintrop, D., & Wilensky, U. (2017). Comparing block-based and text-based programming in high school computer science classrooms. ACM Transactions on Computing Education, 18(1). (a verificar)
  • Whalley, J. L., Lister, R., Thompson, E., Clear, T., Robbins, P., Kumar, P. K. A., & Prasad, C. (2006). An Australasian study of reading and comprehension skills in novice programmers, using the Bloom and SOLO taxonomies. ACE 2006. (a verificar)

W – Z

  • Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35.
  • Wing, J. M. (2008). Computational thinking and thinking about computing. Philosophical Transactions of the Royal Society A, 366(1881), 3717–3725.
  • Wood, D., Bruner, J. S., & Ross, G. (1976). The role of tutoring in problem solving. Journal of Child Psychology and Psychiatry, 17(2), 89–100.
  • Xie, B., Nelson, G. L., & Ko, A. J. (2018). An explicit strategy to scaffold novice program tracing. SIGCSE '18. (a verificar)
  • Zhang, J., & Norman, D. A. (1994). Representations in distributed cognitive tasks. Cognitive Science, 18(1), 87–122.
  • Zimmerman, B. J. (2002). Becoming a self-regulated learner: An overview. Theory Into Practice, 41(2), 64–70.

¡Recorrido completo!

Lleva una clase que empiece leyendo código a tu aula esta semana.