¿Qué tiene que estudiar un informático?
¿Qué tienen que estudiar los ingenieros informáticos? Es curioso que una profesión tan extendida con titulaciones en casi todas las universidades españolas tenga tan poco claro lo que tienen que estudiar sus ingenieros.
Introducción
Mi artículo de este mes no trata de los temas que habitualmente ocupan el espacio que me conceden de vez en cuando en esta revista. No voy a tratar los problemas de los derechos de autor, ni los derechos de los internautas, etc. Quiero entrar en otro de los aspectos que me preocupan y que no es otro que la formación y, dentro de ella, el área que más conozco, la formación de los informáticos.Una vez escrito este artículo, he de completar esta introducción para indicar que en el fondo sí trato los temas de siempre, fundamentalmente porque la formación de los profesionales informáticos está muy relacionada con el estado de la informática y especialmente con su futuro.
¿Qué se enseña en informática?
Los estudios de informática entraron en la universidad en España en 1977 con la creación de la Licenciatura en Informática, que en los años 90 se convirtió en Ingeniería Informática.
Sus primeros planes de estudio estaban muy influenciados por la procedencia de la mayoría de su profesorado. En algunas Facultades los profesores provenían fundamentalmente de áreas de ingeniería -ingeniería de telecomunicaciones e ingeniería industrial fundamentalmente- y en otras facultades de áreas de ciencias -matemáticas y física fundamentalmente-. Los primeros títulos oficiales ``Licenciados / Diplomados en informática'' parece que se decantaban más por esta segunda corriente, mientras que los actuales ``Ingenieros / Ingenieros Técnicos en Informática'' parece que se acercan más a la primera.
Esta diferencia de culturas llevó al choque entre dos concepciones distintas sobre los planes de estudio en informática. Los primeros con mayor énfasis en asignaturas aplicadas como sistemas operativos, redes de ordenadores, ingeniería del software, etc. Los segundos con más peso en el estudio básico, con mayoría de asignaturas como cálculo, álgebra, matemática discreta, teoría de autómatas, etc. El resultado final de los planes de estudio obviamente conjuga ambas visiones por imperativo legal (la troncalidad fijada en el BOE), aunque la relación de fuerza en cada universidad determinan el sesgo del plan de cada una.
¿Qué lenguaje de programación?
Otro de los problemas habituales a la hora de implementar un plan de estudios de informática es elegir qué lenguaje o lenguajes de programación emplear. Parece razonable que esta decisión se tome fundamentalmente por razones pedagógicas, sin embargo otros muchos factores afectan y han afectado esta decisión.
Durante cierto tiempo muchas universidades emplearon Pascal como lenguaje para enseñar programación. En otras asignaturas, típicamente las relacionadas con los sistemas operativos, se empleaba C por ser el más usado en la implementación de sistemas operativos, los profesores de asignaturas de control o tiempo real preferían Ada, etc. Estas aproximaciones eran criticadas desde la industria por ser lejanas a la realidad del mercado. Es muy importante que aprendan COBOL clamaban hace 15 años...
A mi entender, la industria parece no darse cuenta de que van por detrás de la universidad y no por delante en estas cuestiones (en contra de lo que creen). Me explico, hace algunos años para mucha gente de la industria en la universidad se explicaban cosas poco útiles cuando no enseñaba COBOL. Curiosamente, como los alumnos en las universidades aprendieron otras cosas, en particular C, cuando llegaron a la industria empezaron a usar lo que mejor conocían. Así, hicieron uso de C, por ejemplo, incluso para hacer programas de gestión empresarial, para lo que no está especialmente dotado.
Hoy la situación sigue siendo similar. Ahora desde la industria se reclama, por ejemplo, que se use Java como lenguaje de programación. Mejor dicho, se pide que se les enseñe Java y sus implementaciones de todas las tecnologías básicas y casi nada más. Sé que para muchos la idea de un lenguaje interpretado con fuertes conexiones con la red puede parecer algo novedoso, pero la verdad es que había muchas cosas similares y mejores antes, simplemente Java tuvo la suerte de nacer entre los brazos de una multinacional.
Nuevo factor: la industria
Además se añade un nuevo factor, la industria ha crecido mucho y ahora hay jugadores muy poderosos: Microsoft, SUN, etc. que entienden perfectamente que lo que aprendan los futuros ingenieros será un factor de mucho peso en lo que se utilizará en las empresas en los años venideros. De ahí que muchas empresas hagan muchos esfuerzos para colocar sus productos en las universidades.
Microsoft parte de su conocida ventaja en sistemas operativos de los equipos de sobremesa, que son los que fundamentalmente equipan las aulas de prácticas por razones fundamentalmente de precio en las universidades. Hasta hace muy poco era complicado encontrar aulas de ordenadores compatibles con sistemas operativos que no fuesen de Microsoft. La resistencia ha sido muy fuerte a la aparición de aulas con GNU/Linux u otros sistemas operativos libres. Las multinacionales informáticas han creado licencias campus para tratar de convencer a las universidades de su uso. Han realizado donaciones de software con la misma idea.
Mi pregunta fundamental es: ¿Debería obligar la administración a utilizar tecnologías neutrales, esto es libres, en la docencia en tecnologías de la información? A mi entender sí, por dos razones fundamentales. La primera menos importante: por precio. Las licencias de campus son muy baratas comparadas con los precios individuales, pero aún así hay que pagarlas y las donaciones sólo se producen al subconjunto limitado de universidades de mucho prestigio con la idea de que arrastren a las demás.
La segunda es la más importante desde mi punto de vista: las administraciones públicas deberían forzar el uso de tecnologías no propietarias para no colaborar en el mantenimiento de monopolios en ningún campo de estas tecnologías. Aceptar que se emplee como lenguaje Java, o que los únicos sistemas operativos que vean los alumnos sean los de la familia Microsoft Windows, me parece peligroso desde el punto de vista social.
Curiosamente, para alguien que ha defendido la vertiente más ingenieril de la informática, son los sectores más partidarios de la fuerte formación matemática los que más comprenden la necesidad de usar tecnologías no propietarias. Quizás la no patentabilidad de las matemáticas ha llevado a esa comunidad a una evolución más abierta que a la de las supuestamente más dinámicas ingenierías.
Deontología profesional
Otro punto de interés en la formación de los informáticos, y que se deja muchas veces de lado, es la formación sobre la informática como rama del saber y sobre sus componentes sociales. La impartición de este tipo de conocimientos suele hacerse alrededor de la asignatura de deontología profesional. Esto no es exclusivo de la informática, casi todas las titulaciones universitarias imponen ciertos créditos obligatorios de deontología profesional.
Las asignaturas sobre deontología en informática tienen en mi opinión un perfil muy limitado, que reconozco sesgada por la implementación de las asignaturas que conozco. En general se centran en una única parte de los problemas a los que se enfrenta un informático en su vida profesional: el uso de información confidencial, bien de los usuarios de los servicios que desarrollan, de sus compañeros o de las empresas para las que trabajan. También abordan, como no podría ser menos, las prácticas éticas, por ejemplo no realizar programas incorrectos intencionadamente, se introducen discusiones sobre la necesidad o no de colegios profesionales (esto daría para otro artículo), se habla de las prácticas de contratación y relación con los compañeros y competidores, y en general se establecen los derechos y deberes legales de la profesión informática.
Sin embargo, en mi opinión es deseable introducir a los alumnos en otros asuntos relacionados con la informática, pero que son de caracter más general. Creo que es importante que se enfrenten a los problemas sociales de la informática. En particular me parece imprescindible que conozcan la filosofía subyacente en el modelo de desarrollo del software libre. No es aceptable que la mayoría de los alumnos de informática salgan de las aulas pensando que la única forma de desarrollar software, o de ganar dinero desarrollándolo es mediante la venta de licencias propietarias. Es necesario que se aborde el análisis de las licencias de software, que se estudien sus implicaciones.
De igual forma es necesario que en las aulas se aborden las cuestiones relacionadas con la propiedad intelectual, de las que yo creo que el software libre es un subconjunto. La informática está estrechamente relacionada hoy en día con la producción y distribución de contenidos multimedia. Es necesario que los informáticos discutan y razonen sobre las formas en que se van a realizar esas funciones y sus responsabilidades sociales.
Las prácticas profesionales de un informático no deben limitarse a su relación con la información confidencial, la privacidad de los datos, etc. Es importante que sea consciente de su papel en la cadena de producción intelectual y que decida con conocimiento qué tipo de herramientas desarrolla o utiliza en su vida profesional.
Los otros informáticos
Hasta aquí he usado la formación de los informáticos como hilo conductor del artículo. Soy consciente de que la profesión informática a día de hoy está llena de gentes de procedencias muy diversas. Así, además de ingenieros informáticos, hay ingenieros de otras ramas, licenciados, etc. Eso sí, lo dicho sobre el uso de herramientas informática libres se aplica igualmente a su formación.
Asignaturas relacionadas con la gestión de la propiedad intelectual en general y con el modelo de desarrollo del software libre en particular creo que deberían ser obligatorias en los estudios relacionados con las tecnologías de la comunicación y muy recomendables (quizás en formato de asignaturas de libre elección/configuración) en otras titulaciones.
Otra parte de los profesionales de la informática son los autodidactas. A ellos les recomendaría que, siguiendo sus instintos, trataran de ver más allá de las herramientas comerciales de moda y que apostasen por el software libre como camino de especialización.
Por último, como profesor no puedo dejar al resto de los usuario sin deberes: no vale con ser simples usuarios de GNU/Linux, hay que entender, por ejemplo, qué papel juega la licencia GPL y el modelo de desarrollo de software libre en general.
Como siempre BarraPunto sigue siendo un buen sitio para discutir estos asuntos. Así, si quieres leer más sobre estos temas puedes intervenir en muchas de las discusiones que se celebran al respecto.