El profesorado en DigiPen Europe-Bilbao proviene de diversos orígenes profesionales. En la serie de artículos “Faculty Focus”, brindamos a nuestros profesores y profesoras una plataforma para compartir directamente su experiencia u opinión en temas que consideran de especial interés. Esta entrega viene de parte de Iker Silvano, Senior Associate Professor, quien está trabajando actualmente en su doctorado en Ingeniería Informática.
DigiPen Europe-Bilbao toma decisiones razonadas al diseñar los planes de estudios. Una de las piedras angulares del Grado en Ingeniería Informática en Simulación Interactiva en Tiempo Real es la presencia del lenguaje de programación C++ en casi todas las clases de programación. Por otro lado, en la mayoría de los planes de estudios de Ingeniería Informática o Ingeniería de Software, se observa una tendencia a optar por lenguajes más accesibles para principiantes, como Python. Esta elección se enfoca principalmente en los cursos introductorios, mientras que otros lenguajes se reservan para cursos posteriores con propósitos específicos, como el desarrollo web con JavaScript o el cómputo numérico con MATLAB. Comprender las motivaciones y las consecuencias de esta elección puede ayudar a aclarar qué filosofía hay detrás del diseño de nuestro plan de estudios.
C++ es un lenguaje de programación de propósito general creado por el científico informático danés Bjarne Stroustrup. Fue lanzado originalmente en 1985 y aún se utiliza ampliamente, evolucionando y creciendo casi 40 años después de su concepción. Hasta el tercer trimestre de 2023, C++ se mantiene en una posición destacada entre los lenguajes de programación más populares en GitHub, oscilando entre la segunda y la quinta posición.
De acuerdo con una investigación anual llevada a cabo por HackerRank C++ ocupa, hasta el año 2023, el cuarto lugar entre los lenguajes de programación más demandados en la industria. Junto con Java, Python, SQL y JavaScript, se encuentra en la categoría superior de las habilidades más solicitadas en el ámbito del desarrollo de software.
Al ser un lenguaje de propósito general, C++ puede, y de hecho se utiliza, en una amplia variedad de tareas relacionadas con la programación. No obstante, su énfasis en el rendimiento y la abstracción lo posiciona de manera más idónea para programas donde la eficiencia y la escalabilidad son factores críticos. En la actualidad, las aplicaciones de C++ abarcan una amplia gama de áreas, como sistemas operativos, bases de datos, trading financiero, dispositivos integrados, aprendizaje automático y, por supuesto, el desarrollo de videojuegos.
C++ tiene una amplia variedad de paradigmas y conceptos de programación, lo que a veces implica una gran curva de aprendizaje para quienes lo adoptan. No obstante, en un entorno educativo, esta dificultad nos da una valiosa oportunidad de entrar en detalles que otros lenguajes más fáciles tienden a ocultar. Debido a su naturaleza cercana al hardware, trabajar con C++ facilita la exploración detallada de aspectos fundamentales del software, como la construcción de estructuras de datos y de algoritmos de alto rendimiento, lo que permite trabajar en niveles avanzados de expresividad y obtener resultados más eficientes con una menor cantidad de código.
Las habilidades adquiridas al aprender este lenguaje son fácilmente aplicables a otros lenguajes y áreas de dominio. Por lo tanto, hacer la transición a un lenguaje de programación diferente después de haber aprendido C++ debería ser simplemente, en la mayor parte de los casos, una cuestión de ajustar pequeñas diferencias.
Este lenguaje es ampliamente considerado como «el lenguaje de programación más complejo». Permite múltiples paradigmas de programación (o formas de pensar acerca de los programas); es de tipo estático, lo que implica que los programas deben cumplir con ciertas reglas antes de ser probados; e implica la gestión de la memoria requiriendo un enfoque cuidadoso de la persona programadora para manejar eficientemente los recursos del programa, entre otros desafíos. Pero aprenderlo bien requiere trabajar en más conceptos. Además de la mecánica del propio lenguaje, se debe aprender sobre la eficiencia o cómo escribir programas para que se ejecuten rápidamente y requieran menos recursos. La aplicación de las mejores prácticas garantiza que los programas puedan crecer sin colapsar bajo la carga de su complejidad, y la creación de código legible facilita la comprensión y colaboración entre programadores.
Pero esta complejidad no debe ser vista exclusivamente como una característica negativa. Preferimos considerarla como una de las dos caras de una moneda. La complejidad, y por lo tanto la dificultad, son consecuencias de dominar un lenguaje poderoso y rico. Su filosofía se centra en capacitar a los programadores, dotándoles de una amplia gama de recursos para producir software de alta calidad. El precio a pagar, por supuesto, es la responsabilidad de utilizarlos de manera correcta. Otros lenguajes de programación, en contraste, se orientan hacia la ergonomía, ocultando determinados mecanismos para favorecer la comodidad del programador. En resumen, los programas pueden ser más fáciles de escribir y mantener, pero los programadores pierden acceso a un cierto nivel de detalle y refinamiento en su código. En determinadas áreas del desarrollo de software, este intercambio no sólo resulta conveniente, sino a veces fundamental.
DigiPen Europe-Bilbao ha mantenido una larga y exitosa tradición de enseñar el lenguaje de programación C++ como componente central de su plan de estudios durante la última década. Sin embargo, es importante mencionar que no es el único lenguaje que se aborda. La introducción a la programación se hace a través del lenguaje C, considerado el antecesor de C++. En comparación, C es un lenguaje simple que surgió en la década de 1960 y que aún se utiliza ampliamente en diversas áreas. Lo que destaca en esta situación es que C++ fue diseñado para ser completamente compatible con C, lo que implica que cualquier código válido escrito en C también debería ser válido en C++. El beneficio de esta decisión es que cuando los estudiantes se enfrentan por primera vez a C++, pueden aprovechar todo su conocimiento de C y, por lo tanto, escribir programas funcionalmente. Además de eso, el plan de estudios abarca diversos lenguajes de programación para áreas específicas, como C#, MATLAB, Python, Lua, entre otros.
El uso predominante de C++ en DigiPen Europe-Bilbao es una elección coherente con sus programas de desarrollo de software. El objetivo es brindar una educación integral y general en ingeniería informática, al tiempo que preparar al alumnado para incorporarse de inmediato a una fuerza laboral especializada una vez se gradúen.
Llegar a ser competente en el lenguaje C++ lleva tiempo, pero los beneficios obtenidos van mucho más allá de la capacidad de simplemente escribir código.
Conoce al Autor
Iker Silvano es un experimentado ingeniero de software y profesor DigiPen Institute of Technology Europe-Bilbao, especializado en programación avanzada, optimización y desarrollo de videojuegos. Guía a los estudiantes en la creación de motores para juegos en 3D, en consonancia con el enfoque de DigiPen de fomentar graduados creativos y técnicamente competentes.