El pensamiento computacional ha evolucionado constantemente desde sus primeras propuestas hace ya unas décadas para adaptarse a los avances de la informática. Por ejemplo, en los últimos años se han incorporado dimensiones relacionadas con la inteligencia artificial debido al auge tan espectacular de este campo. Y ahora, respaldado por evidencia científica, surge un nuevo concepto con gran potencial educativo: la variabilidad software.
Por ello, presentamos un REA innovador para llevar al aula esta dimensión emergente del pensamiento computacional, permitiendo al alumnado razonar sobre familias de soluciones relacionadas, en lugar de pensar únicamente en programas o proyectos aislados.
El recurso está dirigido principalmente a docentes de informática y tecnología de ESO, Bachillerato y Formación Profesional. Sin embargo, por la conexión natural entre variabilidad y abstracción, también puede resultar de interés para docentes de otras especialidades, como matemáticas, que ya trabajen el pensamiento computacional en estos niveles.
¿Por qué trabajar la variabilidad software en educación?
Configurar un teléfono móvil, personalizar un videojuego o incluso elegir los ingredientes de un bocadillo son ejemplos cotidianos de variabilidad. En todos ellos existe una base común y un conjunto de opciones que permiten generar múltiples variantes.
En la ingeniería del software, esta forma de pensar es fundamental. Sin embargo, raramente se trabaja de manera explícita en los currículos educativos, incluso en contextos donde se enseña programación. Este REA busca cubrir ese vacío y demostrar que la variabilidad puede abordarse de forma accesible y motivadora mucho antes de llegar a la universidad.
Las actividades del recurso muestran que la variabilidad conecta con ideas que usamos constantemente: elegir opciones, combinar alternativas, reutilizar lo común y decidir qué cambia según el contexto.
Nuestro objetivo es fomentar la variabilidad no solo para personas que van a ser ingenieras, sino para todo el alumnado, como una forma general de pensar y resolver problemas que nos ayuda en nuestro día a día.
Estructura del recurso
El REA Variabilidad software y pensamiento computacional se organiza en cinco bloques que guían al alumnado de manera progresiva, combinando reflexión, modelización y programación.
1. Introducción a la variabilidad
El recurso comienza con un vídeo interactivo que introduce la idea de variabilidad a partir de ejemplos cercanos, como cocinar una paella o elegir las características de un reloj inteligente cuando vamos a una tienda o hacemos un pedido online. El alumnado identifica qué partes permanecen constantes y cuáles pueden cambiar, conectando el concepto con su experiencia cotidiana.
2. Modelización de la variabilidad
En este bloque se introduce la modelización de opciones y restricciones mediante el uso de diagramas, que el alumnado puede diseñar de manera desconectada y también utilizando software de modelado para representar gráficamente sistemas configurables.

Diagrama que modela la variabilidad de recetas de paella
De forma progresiva, se presenta el lenguaje UVL (Lenguaje Universal de Variabilidad) como una manera formal de expresar estos modelos, reforzando la abstracción y el pensamiento estructurado.
3. Metaprogramación con Snap!
Una de las aportaciones más innovadoras del REA es el uso del lenguaje de programación visual Snap! para introducir la metaprogramación, es decir, la capacidad de escribir programas que modifican otros programas.
Aunque esto pueda sonar algo rebuscado, lo cierto es que Snap! ofrece un conjunto de bloques muy sencillos que permiten gestionar la variabilidad de un proyecto de manera muy simple y accesible mediante esta técnica. Y el recurso incluye un videotutorial interactivo que se acompaña de actividades de reflexión para guiarnos en el proceso.
4. Aplicación práctica: un laberinto configurable
Para poner en práctica lo aprendido en el módulo 3, el núcleo del recurso es un videojuego de laberinto que el alumnado debe transformar en un sistema configurable. A lo largo de una serie de retos graduales, se les propone modificar dinámicamente el comportamiento de los personajes para crear distintos niveles de dificultad.

Desafío de programación para gestionar la variabilidad de un laberinto configurable
El REA incluye una rúbrica detallada sobre aspectos como la reinvención del proyecto, el mecanismo de variabilidad empleado, la documentación y la publicación del trabajo, facilitando la autoevaluación y la evaluación entre pares para este reto de programación.
5. Evaluación del pensamiento en variabilidad
Para terminar, el REA incluye un test gamificado, basado en la metáfora de una tienda de Playmobil, que permite evaluar las habilidades desarrolladas durante las diferentes actividades que forman el recurso. A través de este enfoque lúdico, el alumnado pone a prueba su comprensión de la variabilidad y los distintos mecanismos para implementarla.
Un REA fundamentado en investigación
Este REA se apoya en la investigación desarrollada por el grupo DiversoLab de la Universidad de Sevilla, en colaboración con la Universidad Rey Juan Carlos. Este trabajo, que ha sido premiado recientemente como mejor artículo científico en la Conferencia Internacional de Líneas de Producto Software 2025, presenta experiencias piloto en el aula con resultados muy prometedores.

Uno de los talleres sobre variabilidad desarrollados por el equipo de investigación en la Universidad de Sevilla
Para saber más:
- REA Variabilidad software y pensamiento computacional
- Investigación en la que se basa el REA (publicación en abierto y con licencia CCBYSA): Software Variability as a New Dimension of Computational Thinking: an Exploration. https://dl.acm.org/doi/10.1145/3744915.3748459
- Lenguaje de programación Snap!: https://snap.berkeley.edu/
- Lenguaje Universal de Variabilidad UVL: https://universal-variability-language.github.io/
- Herramientas para construir modelos de características UVL y realizar análisis automáticos:
- flamapy: www.flamapy.org
- flamapy-IDE: https://ide.flamapy.org/

