Uno de los conceptos de la programación que en ocasiones puede resultar complicado de comprender son las variables. Así, por ejemplo, cuando hay dos instrucciones de asignación consecutivas, como “x = 5” seguida de “x = 7” (tal como puede verse en la Figura 1), algunos aprendices creen incorrectamente que la variable puede contener múltiples valores al mismo tiempo, lo que se denomina hipótesis de «valores múltiples».
Figura 1. Dos instrucciones de asignación consecutivas sobre la misma variable.
La forma más habitual de explicar las variables en cursos de introducción a la programación es utilizar la metáfora de que una variable es una caja en la que guardar información, lo que podría contribuir a la hipótesis de los valores múltiples.
Para investigar si esto es cierto, un grupo de investigadoras holandesas ha diseñado y ejecutado un experimento controlado en el que han participado 496 programadores novatos, tanto niños como adultos.
La mitad de los participantes recibió una clase de programación introductoria en la que se explicaban las variables usando la metáfora de la caja, mientras que la otra mitad de los participantes recibió una clase en la que se presentan las variables usando la metáfora de la etiqueta. Tras la clase, se pasó un test a todos los participantes.
¿Qué metáfora produjo mejores resultados?
Los resultados del experimento indican que para las preguntas simples que involucran tan solo una instrucción de asignación, el grupo de la caja obtiene mejores resultados. Sin embargo, para las preguntas con dos declaraciones de asignación consecutivas, el grupo de la etiqueta obtiene mejores resultados. De hecho, en los ejercicios en los que las variables almacenan cadenas de texto, el grupo de la caja incurre en mayor medida en la concepción errónea de valores múltiples. Mientras que al almacenar números enteros, el grupo de la caja considera erróneamente en mayor medida que dos instrucciones de asignación consecutivas causan que se sumen los valores.
Aunque, evidentemente, se trata tan solo de una investigación inicial y hace falta realizar muchos más experimentos para llegar a conclusiones fuertes, este tipo de investigaciones son muy necesarias y marcan un camino que desde Programamos consideramos fundamental, en el que universidad y centros escolares (y también administraciones educativas) colaboran en mejorar la enseñanza de una disciplina, en este caso la programación.
Y tú, ¿cómo enseñas las variables a tu alumnado? ¿Utilizas alguna de estas metáforas? ¿Usas alguna otra metáfora que te hayas inventado? ¡Cuéntanos tu experiencia!
Imagen de cabecera: Teaching Variables: Analogies and Approaches, de Khan Academy
Buenas, soy Ingeniero Técnico en Informática, imparto clases en ciclos de grado medio de informática. Normalmente los módulos que imparto son Sistemas Operativos Monopuesto, y Montaje y Mantenimiento de equipos. Aunque también puedo impartir Aplicaciones ofimáticas y Sistemas operativos en Red.
El tema de las variables las explico o enseño como si fuesen cajas almacenando datos.
Muchas gracias por tu aportación, Diego.
Y en tus clases, ¿has detectado que el alumnado incurra en la hipótesis de «valores múltiples», como se comenta en el artículo?
Saludos.
Buenas noches. Soy licenciada en Informática. He trabajado en la empresa privada como informática durante 9 años y llevo en la enseñanza secundaria más de 20 años como profesora de informática. Mi plaza está en el IES San Blas de Alicante.
He explicado el concepto de variable muchas veces y últimamente lo explico con el concepto de un posit de notas donde escribimos un dato, cuando se vuelve a escribir otro dato se borra y escribe el nuevo valor. Si la variable es una cadena de texto el concepto de anotación en un posit es similar al de un número, El alumnado lo suee ver claro.
Muchas gracias por el comentario, Consuelo. Es genial conocer experiencias de otros compañeros.
Justamente en una línea similar nos comentaba por Twitter Baltasar Fernández que le había funcionado muy bien esa metáfora en un curso para estudiantes de humanidades: https://twitter.com/BaltaFM/status/1457280905039470597
Saludos.