[en] In today's society, computer programming enjoys a great present and future, being one of the standards that marks the lines of progress. In fact, this discipline now even comes to be considered as the language of the 21st century. On the one hand, the number of jobs that require programming skills is growing rapidly each year in Europe. On the other hand, programming is postulated as a transversal tool that helps to boost the computational thinking. Nonetheless, one of the biggest challenges faced by Computer Science is the teaching of programming. One of the main factors of it is the abstraction that programming requires and the serious difficulties it causes for students. This issue may be addressed through the use of graphic representations that capture and maintain the student's attention and motivation, associating real-world elements with specific programming terms. In addition, the use of immersive technologies, as Augmented Reality may improve the learning process, by introducing new innovative interaction and visualization mechanisms. This new visualization mode may allow the student to study complex source code with a greater degree of freedom, and even better understand the flow of execution in systems with a high degree of concurrency where there are several processes and threads acting simultaneously. This Master's Degree Final Project has the objective to address the programming learning problem through the use of immersive system based on Augmented Reality. To achieve this goal, this project proposes a metaphor that supports dynamic visualizations of programs, a new architecture that adds a computational support with which these visualizations are generated, and a corresponding evaluation with students to demonstrate the achievement of the objectives.

[es] En la actualidad, la programación de computadores goza de un presente y futuro brillante, siendo uno de los estandartes que marca las líneas de progreso. De hecho, esta disciplina actualmente llega incluso a considerarse como la lengua del siglo XXI. Por un lado, cada año incrementa en Europa el número de puestos de trabajo que requieren habilidades de programación. Por otra parte, ésta se postula como una herramienta transversal que potencia el pensamiento computacional. No obstante, uno de los mayores desafíos a los que se enfrenta la Ingeniería Informática es la enseñanza de la programación. Una de las principales causas de este problema es la abstracción que requiere esta disciplina y las serias dificultades que plantea a los estudiantes. Esta problemática puede abordarse mediante la utilización de representaciones gráficas que capturen y mantengan la atención y la motivación del estudiante, asociando elementos del mundo real con términos específicos de programación. Además, el empleo de tecnologías inmersivas, como la Realidad Aumentada, puede mejorar el proceso de aprendizaje al introducir nuevos mecanismos innovadores de interacción y visualización. Este nuevo modo de visualización puede permitir al estudiante estudiar códigos complejos con mayor grado de libertad, e incluso comprender mejor el flujo de ejecución en sistemas con alto grado de concurrencia donde existen diversos procesos e hilos actuando de forma simultánea. El presente Trabajo Fin de Máster tiene como objetivo abordar el problema del aprendizaje de la programación mediante el uso de un sistema inmersivo basado en Realidad Aumentada. Para ello se propone una metáfora que soporta la visualización dinámica de programas, una arquitectura que añade el soporte computacional con el que se genera estas visualizaciones, y una evaluación correspondiente con estudiantes para demostrar la consecución de los objetivos.