Seguir el código línea por línea: por qué leer va antes que escribir
Seguir el código es ejecutarlo en la cabeza, línea por línea. Por qué a quien no sabe hacerlo le cuesta escribir código y cómo explicarlo en un video.
Por el equipo de Chasca 6 min de lectura
Seguir un código es recorrerlo como lo hace la computadora, una línea a la vez, anotando el valor de cada variable cada vez que cambia. A los estudiantes que no saben hacerlo con fiabilidad les cuesta escribir programas, y por eso los organismos examinadores lo evalúan directamente y por eso algunos investigadores sostienen que debería enseñarse antes de escribir código.
¿Por qué importa tanto seguir el código?
Porque muchos estudiantes terminan su primer curso de programación sin saber programar, y parte de la razón es un seguimiento débil. En 2001, un grupo de trabajo dirigido por Michael McCracken aplicó una evaluación de programación de prueba a estudiantes de primer año de informática de cuatro universidades: los 216 estudiantes obtuvieron un promedio de 22.89 sobre 110.
Un grupo posterior preguntó por qué. Raymond Lister y sus colegas evaluaron a estudiantes de siete países en lectura y seguimiento de fragmentos cortos de código: predecir qué produciría un fragmento corto de código y elegir la línea que falta en un código casi terminado. Muchos fueron débiles en ambas cosas, lo que los autores interpretaron como un dominio frágil de las destrezas de las que depende la resolución de problemas.
Eso inspiró una idea de enseñanza. En una teoría de la enseñanza para la programación introductoria de 2019, Benjamin Xie y sus colegas de la Universidad de Washington separan cuatro destrezas, con el seguimiento primero, y defienden enseñar la lectura antes que la escritura. En su estudio exploratorio, el material que enseñaba las destrezas en ese orden llevó a una mayor realización de ejercicios de práctica, menos errores y mejor comprensión en una prueba final.
¿Cómo se evalúa el seguimiento?
Directamente. Las especificaciones del GCSE de informática de Inglaterra lo incluyen. La especificación de AQA nombra el seguimiento de código entre las destrezas que evalúa su primer examen y espera que los estudiantes usen tablas de seguimiento para averiguar cómo funcionan algoritmos sencillos y para qué sirven. La de OCR exige que los estudiantes creen y usen tablas de seguimiento para seguir un algoritmo, e identifiquen errores en el código y propongan correcciones. Ambas piden también tablas de verdad, y la de AQA incluye consultas SQL sencillas.
¿Cómo es un seguimiento?
Toma una pregunta corta del tipo que plantea un examen del GCSE: ¿qué imprime este programa?
total = 0
for n in range(1, 5):
total += n
print(total)
Un seguimiento acompaña a la computadora un cambio a la vez:
| Paso | n | total |
|---|---|---|
| Inicio | 0 | |
| Primera vuelta | 1 | 1 |
| Segunda vuelta | 2 | 3 |
| Tercera vuelta | 3 | 6 |
| Cuarta vuelta | 4 | 10 |
La idea que importa es que range(1, 5) se detiene antes del 5, así que el bucle se ejecuta cuatro veces y el programa imprime 10. Un estudiante que responde 15 ha ejecutado el bucle una vez de más, y una buena explicación lo dice.
¿Por qué es difícil aprender a seguir un código por cuenta propia?
- Ejecutar el código muestra la salida, no el porqué. El estudiante ve “10” y aun así no sabe qué línea lo produjo.
- Una tabla de seguimiento terminada muestra todo de golpe, así que se pierde el orden en que cambiaron los valores, que es justo lo importante.
- El tiempo de clase es corto. Un profesor puede seguir uno o dos ejemplos en la pizarra; la hoja de tareas tiene muchos más.
- Las explicaciones en línea cubren temas, no el fragmento exacto en que está atascado el estudiante, y rara vez en el idioma del estudiante dejando las palabras del código como están.
¿Qué muestra un buen video de seguimiento de código?
- El código, a la vista todo el tiempo, junto al desarrollo, con la línea que se ejecuta marcada.
- Cada valor a medida que cambia, dicho y escrito un cambio por línea: “i = 2 → total = 3”.
- La idea que importa, nombrada: el bucle se ejecuta cuatro veces, la división entera descarta el resto, el caso base detiene la recursión.
- Si hay un error, la línea, por qué falla y la corrección. En una conversión numérica, cada división entre la base. En SQL, qué filas se conservan y por qué.
- La salida enmarcada y luego una comprobación rápida.
- El código leído como lo dicen los programadores, con los nombres y las palabras clave en inglés, incluso cuando la explicación va en otro idioma.
Mantener juntos el código y el seguimiento importa. El metaanálisis de 2006 con 50 estudios de Paul Ginns encontró que reunir la información relacionada, en el espacio y en el tiempo, produce ganancias de aprendizaje considerables, sobre todo con material complejo. Hablamos más de esa investigación en por qué funcionan los videos de pizarra.
¿Qué hace la habilidad Problemas de código?
Nosotros hacemos Chasca, así que ten eso en cuenta con nuestra parte. La habilidad Problemas de código resuelve preguntas de informática en la pizarra de un profesor:
- Trae el código y la pregunta, escritos o pegados, o como fotos, un PDF o un documento de la hoja, hasta 20 páginas: preguntas de salida, búsqueda de errores, sistemas de numeración, tablas de verdad y SQL sobre una tabla pequeña.
- Tu código queda junto al desarrollo desde el principio, copiado tal cual, y se recorre como lo ejecuta la computadora, con la línea que importa resaltada.
- El seguimiento se escribe en la pizarra un cambio a la vez, a medida que se dice. Las tablas de seguimiento, las tablas de verdad y los resultados de consultas se dibujan como tablas, un algoritmo dado en pasos como un diagrama de flujo, y las llamadas recursivas como un árbol.
- Las palabras del código se leen como las dicen los programadores, en inglés, dentro de una narración en tu idioma, con cualquiera de los 30 narradores o con tu propia voz.
- Cada respuesta se resuelve por segunda vez, por separado, antes de enmarcarla. Si algo no coincide, o no coincide con tu clave, la página del video te indica qué pregunta revisar.
- Pide preguntas sobre un tema sin dar ninguna, y escribe código corto al estilo de un examen para ellas, en Python salvo que nombres otro lenguaje.
¿Para quién es?
Para profesores de informática que quieren un seguimiento resuelto de cada pregunta de una hoja, tutores que preparan a estudiantes para exámenes escolares e instructores de cursos de programación introductoria cuyos estudiantes necesitan leer código con soltura antes de escribirlo.
¿Qué no hace?
- Ejecutar tu código. Se sigue como lo haría un profesor en una pizarra y luego se comprueba resolviéndolo otra vez; no se ejecuta en una computadora.
- Dibujar todavía diagramas de compuertas lógicas. Tablas de verdad, sí; símbolos de compuertas, todavía no.
- Enseñar un lenguaje entero. Explica preguntas, una a la vez.
¿Cómo se hace uno?
- Abre la habilidad “Code problems” en Chasca.
- Pega el código y la pregunta, con sus opciones y tu clave si las tiene, o agrega una foto o un PDF de la hoja.
- Elige el idioma, la voz y una pizarra negra o una pizarra blanca, y crea el video.
- Revisa la página del video por si hay alguna pregunta señalada antes de compartirlo.
Tus primeros dos videos son gratis, de hasta un minuto cada uno, con marca de agua y sin necesidad de tarjeta; un video gratis cubre las primeras preguntas que caben en su minuto. Los planes empiezan en $9.99 al mes (precios).
Fuentes
- McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L., Utting, I. y Wilusz, T. (2001). A multi-national, multi-institutional study of assessment of programming skills of first-year CS students. Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education.
- 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. y Thomas, L. (2004). A multi-national study of reading and tracing skills in novice programmers. ACM SIGCSE Bulletin, 36(4), 119–150.
- Xie, B., Loksa, D., Nelson, G. L., Davidson, M. J., Dong, D., Kwik, H., Tan, A. H., Hwa, L., Li, M. y Ko, A. J. (2019). A theory of instruction for introductory programming skills. Computer Science Education, 29(2–3), 205–253.
- AQA (2025). GCSE Computer Science (8525) specification, version 1.3.
- OCR. GCSE (9–1) Computer Science J277 specification.
- Ginns, P. (2006). Integrating information: A meta-analysis of the spatial contiguity and temporal contiguity effects. Learning and Instruction, 16(6), 511–525.
Transcripción del video Lo que dice el narrador en el video explicativo de arriba, de 2:25.
In this video, we trace a Python list and convert a decimal number to binary and hexadecimal.
Question one. What is the output?
First, x equals a list containing one, two, and three.
Next, y equals x, so both names refer to the same list. The call y dot append with four adds four to that shared list. Now x and y both refer to the list containing one, two, three, and four.
The print call evaluates len of x, which is four.
Notice that assigning y equals x does not copy the list. Hence, the output is four.
Question two. Convert forty-five to binary, then to hexadecimal.
First, repeatedly divide forty-five by two, keeping each remainder. Forty-five divided by two gives twenty-two with remainder one.
Twenty-two divided by two gives eleven with remainder zero.
Eleven divided by two gives five with remainder one.
Five divided by two gives two with remainder one.
Two divided by two gives one with remainder zero.
One divided by two gives zero with remainder one.
Reading the remainders from bottom to top gives one zero one one zero one in binary. For hexadecimal, divide forty-five by sixteen to get two with remainder thirteen.
Then divide two by sixteen to get zero with remainder two.
In hexadecimal, thirteen is written as D. Reading those remainders from bottom to top gives two D. As a check, two times sixteen plus thirteen equals forty-five.
Hence, forty-five is one zero one one zero one in binary and two D in hexadecimal.
Lo que la gente pregunta
Seguir un código es recorrer un programa línea por línea como lo haría la computadora, anotando el valor de cada variable cada vez que cambia, para predecir qué hace o qué imprime el programa. Lo habitual es registrarlo en una tabla de seguimiento.
La evidencia apunta en ese sentido. Una teoría de la enseñanza de 2019 para la programación introductoria pone el seguimiento primero y, en su estudio exploratorio, enseñar las destrezas en ese orden mejoró la realización de ejercicios y redujo los errores.
Dale a cada variable, y a la salida, su propia columna. Recorre el código línea por línea y agrega una fila cada vez que cambie un valor; la última fila contiene los valores finales y la salida.
Porque tienen que tener en la cabeza todas las variables mientras siguen el orden en que la computadora ejecuta las líneas. Un estudio de 2004 en siete países encontró que muchos programadores novatos eran débiles para predecir qué producirían fragmentos cortos de código.
No. La habilidad Problemas de código sigue el código como lo haría un profesor en una pizarra, y cada respuesta se resuelve por segunda vez, por separado, antes de enmarcarla. Si las dos no coinciden, la página del video te indica qué pregunta revisar.
Preguntas de salida y de seguimiento, encontrar y corregir errores, conversiones numéricas como de decimal a binario, tablas de verdad y consultas SQL sobre una tabla pequeña. Todavía no dibuja diagramas de compuertas lógicas.