La asignatura tiene una fuerte orientación hacia la programación. Si no te gusta programar o tienes dificultades de abstracción, la asignatura se te puede complicar. Creo que lo que más trabajo le cuesta a la gente es adaptarse a una nueva forma de ver la programación y quitar los malos hábitos adquiridos al utilizar lenguajes tradicionales.
La evaluación de la asignatura se basa en una serie de trabajos prácticos y un par de exámenes de cada parte.
Los exámenes suelen ser tipo test y, hasta ahora, tienen unos porcentajes de aprobados que rondan el 90%. La dificultad de la asignatura no está, desde luego, en los exámenes teóricos.
Las prácticas se hacen de forma individual (con algunas excepciones) y consisten en una serie de ejercicios de programación. A algunos les parecen excesivas aunque creo que soy bastante flexible en cuanto a plazos y normas de presentación. Cada vez intento afinar más en lo que pido. De hecho, suelo dejar una práctica libre en la que cada alumno pueda resolver un problema qué el mismo elige. En algunas ocasiones esta libertad hace que algunos alumnos intenten resolver problemas bastante difíciles. El problema, en muchos casos, suele ser el tiempo disponible.
La nota final es una media entre la valoración subjetiva de las prácticas y la valoración objetiva de los exámenes.
En algún sitio vi una cita (no me acuerdo de dónde ni de quién) que venía a decir que la programación declarativa pura nos acercaba más a la forma de programación celestial. En ese contexto, los efectos laterales de la programación imperativa tradicional serían las malas tentaciones terrenales y los programadores declarativos seríamos, pues, una especie de monjes puristas con todo lo que ello conlleva, tanto positivo como negativo.
Mucha gente se pregunta: si estos lenguajes son tan buenos, ¿porqué no tienen éxito? Suelo poner un símil: La música que vende no suele ser la música de mejor calidad. El mercado está dominado por grandes multinacionales que marcan la pauta de qué es lo que vende y se mueven por intereses distintos de la calidad. En programación ocurre algo parecido, el inmovilismo de los programadores tradicionales y las ingentes cantidades de software en lenguajes arcaicos que todavía funciona en las grandes empresas, hace que éstas sean bastante reacias a adoptar nuevos lenguajes.
En muchas ocasiones, se confunde el entorno de programación con el lenguaje. Reconozco que los compiladores/intérpretes que se utilizan en la asignatura no son una maravilla. La razón es que el software está desarrollado por pequeños equipos de investigación que no tienen la capacidad de desarrollo de grandes empresas tipo Microsoft, IBM o Borland. Ello conlleva una serie de problemas, como la falta de un entorno de programación visual tipo Delphi o de librerías gráficas, depuradores, etc. Estas herramientas no tienen nada que ver con el lenguaje en sí, pero facilitan el desarrollo de programas.
Lo que más cuesta a la gente es adaptarse a una forma de resolver problemas que les obliga a pensar antes de teclear como animales.
Después de diversas variaciones, este año he decidido pedir un trabajo de iniciación en cada paradigma para que los alumnos se familiarizen con el lenguaje y el entorno.
Otro trabajo obligatorio (el mismo en cada paradigma) un poco más complejo que permita a los alumnos resolver un problema mediante descomposición modular y afrontar tareas no triviales. El hecho de tener que resolver el mismo problema en ambos sistemas facilita la resolución del problema la segunda vez y permite identificar partes en común y diferencias entre poaradigmas.
Finalmente, se pide un trabajo libre que los alumnos pueden elegir entre diversas opciones o incluso proponer con el fin de que los alumnos interesados puedan profundizar en el conocimiento de la materia.
Sinceramente, no suelen dar problemas a la gente. No deseo cambiar el tipo de exámen y espero que los resultados sigan siendo tan buenos como hasta ahora. Con los exámenes sólo pretendo disponer de una calificación objetiva sobre cada alumno, ya que sólo con las prácticas para mí es muy difícil reconocer a los genios.
Aquí me callo.
Creo que lo que más gusta a la gente es descubrir que existen otras formas de programar aparte de lo que se ve en asignaturas más tradicionales o lo que puedan leer en las revistillas de informática.
Lo que menos le ha gustado a la gente es el tema de los trabajos prácticos (dicen que son excesivos).
Es posible que exista saturación de prácticas en el curso de tercero pero...Os imagináis que no tuviéseis prácticas y saliéseis a la calle con un título de Ing. en Informática sin haber tocado un teclado?
De todas formas, intento ser flexible con las prácticas y los plazos y, si no lo creéis, preguntar a alguien que haya cogido la asignatura.
- Se la recomiendo a todos los que tengan un poco de curiosidad por conocer formas diferentes de resolver problemas.
- No se la recomiendo a los que tengan dificultades de abstracción o a los que tengan muy arraigada la forma tradicional de programar.
Por supuesto, no se la recomiendo a los que quieran coger una asignatura fácil de 6 créditos y no dar ni golpe en todo el año!!!! Si hay algo que me mosquea bastante es lo del copieteo de prácticas. Por favor, no cojas la asignatura si piensas copiar las prácticas.