teaching

Materials for courses you taught. Replace this text with your description.

For now, this page is assumed to be a static description of your courses. You can convert it to a collection similar to _projects/ so that you can have a dedicated page for each course.

Organize your courses by years, topics, or universities, however you like!

Cada año de docencia me pongo como objetivo realizar cambios, de forma que mantenerme activo y tratar de ofrecer una mejor docencia a los alumnos. Esta idea no es demasiado bien acogida por mis superiores, viendo el esfuerzo realizado en este ámbito una pérdida de tiempo, pero yo, como viejo alumno de la misma carrera, me siento en deuda con los alumnos. Me da mucho apuro ponerles año tras año proyectos idénticos, poco originales, con poco atractivo para el alumno, con herramientas desfasadas que funcionan fatal….

El primer curso que dí Inteligencia Artificial (18/19) el esfuerzo lo pusimos mi compañero y yo en cambiar todas las diapositivas anticuadas para explicar la asignatura, siendo estas completamente autoexplicativas, no un simple enunciado que después resuelva el profesor en clase y ellos tengan que tomar apuntes deprisa y corriendo. No hay opción idónea en este sentido, porque con unas diapositivas completas, los alumnos pueden tener la sensación de que la clase aporta menos, pero el objetivo final es que aprendan, y para ello mejor cuanto más contenido tengan. Ese curso también cambiamos la práctica, huyendo de librerías anticuadas, mal explicadas y poco intuitivas para los alumnos (CLIPS será un buen lenguaje profesional, pero no como primer contacto con la IA). Al final, y lo puedo argumentar al haber sido alumno no hace muchos años, en muchas asignaturas es más difícil el interactuar con la herramienta que utilizar en la práctica, que el concepto que se busca aprender, y eso es un problema. Ese año desarrollamos la práctica en Java, el lenguaje de programación que veían en primero de carrera, el cual ya conocen y les será más amigable. Además, en vez de una práctica global, la dividimos en tres. Partiendo de un mismo enunciado común, que los alumnos vean tres posibles formas de resolver problemas con distintas técnicas de IA. Al final, qué es lo que explicamos si no para resolver problemas del mundo real. El enunciado trataba de ordenar los libros de la biblioteca con robots inteligentes. Recogerlos y ordenarlos de forma eficiente era el objetivo, incluso con varios para que traten de hacerlos funcionar de forma cooperativa. La idea fue buena y no salió mal, pero es normal que con tres tres librerías nuevas de Java, un proyecto completamente nuevo, y unos 80 alumnos imaginativos, surja algún problema. En otro momento os contaré mi esfuerzo en que los alumnos aprendan a hacer trabajos presentables en la universidad, donde también he sufrido bastante.

El curso siguiente, como es habitual, tocó hacer retrospectiva para decidir qué está bien, qué mal, y tratar de definir el esfuerzo a realizar en este curso. Las diapositivas estuvieron bien. Un diseño común y nuevo en todas, explicación paso a paso de los ejercicios… Algunos retoques con el feedback de los alumnos, algún ejercicio nuevo, y sirven. La práctica igual: ya teníamos una base de la que partir, la cual tenía sus errores a pulir. Además, vimos un efecto interesante (y lógico por otra parte). Un porcentaje de alumnos se quejaron por la cantidad de trabajo, mientras que otro lo agradeció, pudiendo dedicar mucho tiempo en mejorar su práctica. Seguramente sí, sea más trabajo del que tenían en prácticas anteriores de la asignatura, pero creo que se aprende más. El problema es que “solo” vale un 30% de la asignatura la práctica, y partida en varias, pasa a ser poco cada entrega (Por mi parte creo que es más importante que un examen final estas prácticas, pero ese es otro tema.). Esto nos abrió otro camino de mejora para ese año (19/20). Tratar de simplificar la práctica un poco, quitando una de las partes (de 3 a 2), pero añadiendo una competición opcional, que otorga hasta un punto extra en la práctica. Además, las dos partes las partimos en dos: primero un problema más básico, sencillo de resolver, y otro algo más complejo, el cual entra en la competición. Con esto tratamos de satisfacer a los dos tipos de alumnos, los que ven que era muy compleja y larga la práctica desde el principio, y los que sí disfrutaban del trabajo, tienen un incentivo extra con la competición. Y así lo hicimos, retocando el código del año pasado, planteando un problema distinto (en vez de robots y libros fueron tareas de limpieza a lo largo del campus). Además, dejamos listo un fichero que modela el problema (número de tareas a realizar, trabajadores, etc.), el cual podamos modificar rápidamente y afecte al impacto de la IA que hayan desarrollado. Esto nos permite comprobar distintos escenarios y garantizar que los ganadores son los que mejor inteligencia han hecho de forma global. Como el año anterior, hubo alumnos que da igual lo que les ofrezcas de práctica, no van a querer trabajar. Al final hay que aceptarlo y centrarte en los que sí están en el alambre y puedes generar interés: tanto los que estén rozando el cinco, como los que sí o sí fuesen a trabajar. El feedback nos dejó claro que la idea era buena, pero la ejecución no. La carga de trabajo fue correcta, aunque quizá algo liosa para los alumnos, con 4 entregables finales. En cuanto a la competición, les gustó la idea y les motivó, pero claro, al ser un premio opaco para ellos, que concedíamos los profesores al evaluarla tras la entrega formal, no incentivaba la mejora de su resultado.

Por eso, este año (20/21) hemos optado por dar un paso más en la competición, el que estás leyendo. La creación de una página web que aloje la competición, permitiendo a los alumnos subir sus prácticas y ver su progreso en la competición. Esto, junto a una tabla de leaderboard, fomenta la competitividad y el mejorar la práctica de cada alumno. Para evitar que la competitividad sea mal tomada, no se permite a los alumnos ver quién ha hecho qué entregas (salvo la suya). En cuanto a la práctica en sí…