[en] Architecture Conscious Programming (PCA) it's a subject of the degree in Computer Engineering that aims for the learning of optimization techniques on high level languages that depend on the computer architecture. Years back PCA made use of an Intel server that allowed students to upload code and be analyzed automatically according to the experience of the professoriate. The analysis was for x86 architectures and allowed students to have a first asyncronous feedback without the professoriate. That let the student have a better progression, since there was no need for waiting for an answer. When the analysis was over students were told about the correctness of the code and if the optimization techniques were properly applied. To add optimization by FPGA hardware generation, PCA started to use Zedboard, an FPGA with ARM processors. That change caused PCA to forfeit old server functionalities. There was also the need to configure systems with software installed on an extern hard drive to compile and support the Zedboards. Another hardness was that students were only able to use the Zedboards when in the lab, with all the lending, installation and wire connection process that is implied. To recover all lost functionalities and to adapt them to the ARM architecture, this project aims to develop a specialized platform. A system with two main components is built: a Zedboard cluster that allows remote work without any lending, and a web page to analyze students' code. This web application adds gamification learning methods, like challenges and rankings.

[es] Programación Consciente de la Arquitectura (PCA) es una asignatura del Grado en Ingeniería Informática que busca el aprendizaje de técnicas de optimización en lenguaje de alto nivel que dependen de la arquitectura del computador. Hace unos años PCA utilizaba un servidor Intel que permitía a los estudiantes subir código para que fuera analizado automáticamente en base a la experiencia del profesorado. El análisis era para arquitecturas x86 y facilitaba tener un primer feedback asíncrono sin la presencia del profesorado. Esto impulsaba una mejor evolución del alumno ya que no se tenía que esperar a recibir respuesta. Tras el análisis se indicaba al alumnado si su código era correcto y se habían aplicado las técnicas de optimización esperadas. Para añadir al temario la optimización mediante generación de hardware para una FPGA, PCA empezó a utilizar las Zedboard, unas FPGA con procesadores ARM. Este cambio supuso abandonar las funcionalidades del antiguo servidor Intel. También provocó que el profesorado tuviera que configurar sistemas con el software preparado en un disco duro externo para todas las tareas de compilación y soporte de las placas Zedboard. Otra dificultad añadida era que los alumnos sólo podían disponer de las placas cuando iban al laboratorio, con la gestión de préstamo e instalación de cables y conexión que el proceso conlleva. Con el objetivo de recuperar las funcionalidades perdidas y adaptarlas a la arquitectura ARM, este proyecto pretende desarrollar una plataforma específica. Para ello se establece un sistema basado en dos componentes principales: un clúster de Zedboards que permita el trabajo remoto sin necesidad de préstamo, y una página web que posibilite el análisis de código del estudiante. Esta aplicación web también incorpora metodologías docentes basadas en la gamificación, como retos y rankings.