Comienzo de clases en Fiuba

Esta semana comenzamos en segundo cuatrimestre. Como siempre voy a estar dictando Algo3 y también como suele ocurrir los segundos cuatrimestres, voy a dictar Teoría de algoritmos (TDA). Habiendo transcurrido la primer semana de clase, tengo algunas curiosidades para compartir.

Curiosidad 1: es la primera vez que tenemos más alumnos en TDA que en la práctica 1 de Algo 3.  En TDA tenemos anotadas unas 45 personas, que en caso que todas cursen efectivamente la materia, va a hacer durísima la corrección de trabajos prácticos. Por otro lado en la algo3 tenemos alrededor de 20 alumnos y somos 4 docentes, lo cual es excelente, pues vamos a poder hacer un trabajo mucho más personalizado.

Curiosidad 2: en TDA tenemos dos alumnos de intercambio provenientes de Francia y según comentó DiegoF, en la práctica 2 de algo3 hay una alumna en la misma condición.

Curiosidad 3: bueno, en realidad no es una curiosidad sino una mejora, apenas comenzamos el cuatrimestre y ya tenemos definidos los 3 trabajos prácticos. Sinceramente no recuerdo que hayamos tenido una situación así previamente y es justamente esa la curiosidad.

Respecto de este último punto, como de costumbre en Algo3, procuramos que los trabajos prácticos sean juegos y este cuatrimestre no es la excepción. Los trabajos 1 y 2 son juegos, mientras que el trabajo 0, consiste en la implementación de ciertas leyes de mecánica clásica (velocidad, fuerza, etc, etc) que son necesarias para los trabajos 1 y 2.  Otro punto positivo respecto a esto, es que en esta ocasión resolvimos el TP antes de entregarselo a los alumnos, para validar el alcance y la dificultad del mismo (resolvimos dijo el mosquito, en realidad yo solo sugerí que deberiamos hacerlo y fue Eugenio quien finalmente lo hizo).

Fin.

Planificación 2011-2 algo3@fiuba

Ayer durante la última fecha de examen integrador, realizamos una reunión de cátedra para planificar el próximo cuatrimestre.
Durante la reunión tratamos algunos de los puntos a mejorar detectados durante las retrospectivas del cuatrimestre anterior.
Puntualmente sacamos en concreto la definición de los 3 trabajos prácticos que vamos a dar y también definimos algunos puntos sobre la implementación de mejoras al titiritero.
Personalmente estoy muy contento con los trabajos definidos pues me parecen muy apropiados ya que van a permitir a los alumnos integrar conocimientos de otras materias y modelar problemas en distintos dominios.

El problema es que funciona

Estabamos en Algo1, tomando recuperatorio, un alumno entrega su exámen y yo lo tomo para corregirlo. Termino de corregirlo y no estaba seguro de que nota ponerle, entonces lo hablo con el equipo docente. Un miembro del equipo pregunta: ¿cual es el problema? a lo que respondo: «El problema es que funciona». Resulta que el alumno habia planteado un algoritmo que resolvia la consigna, pero… ¿como decirlo?…mmmm.  Digamos que la solución era «demasiado rústica». Si la solución no funcionara, no habria dudas, el alumno estaria reprobado sin más vueltas. Pero justamente el problema radicaba en que la solución funcionaba lo cual sumaba la complejidad de explicar al alumno que a pesar que su solución funcionaba, no cumplia con los estándares de calidad de la cátedra.

Justamente esta es una de las diferencias entre ir universidad y no hacerlo*: en la universidad no basta con que funcione, también debe cumplir con algunas otras características. Dichas características dependen del foco de la materia. El hecho de un programa funcione es una condición necesaria, pero está lejos de ser suficiente.

*en realidad es lo que deberia ocurrir, pero no puedo asegurar que siempre sea asi.

Retrospectiva 2011-1 (con video)

El jueves pasado hicimos la restrospectiva de fin de cuatrimestre en algo3. Utilizamos la misma dinámica que en los últimos cuatrimestres. Entre los positivos puntos destacados se destacaron:

  • El dinamísmo de las clases y en particular el de la clase de repaso
  • El uso de Smalltalk y también otros lenguajes
En los puntos negativos destacaron:
  • El alcance del TP1
  • El poco tiempo para hacer los parciales
Si bien a mi parecer el TP1 no era muy extenso, creo que tenia un complejidad importante a pesar de que dimos dos semanas para desarrollarlo, con lo cual sin duda es algo que tendremos que reveer.
En cuanto al tiempo de los parciales es algo que tendremos que hablar con Carlos.
Adicionalmente a esto hubo algunas sugerencias interesantes por parte de los alumnos:
  • Tener más clases en el laboratorio
  • Hacer una clase de repaso previa al segundo parcial
Más allá de todos estos puntos, mi evaluación personal del cuatrimestre es positiva ya que comparando con los resultados de años anteriores, veo que muchas cosas las hemos ajustado convenientemente. Es de destacar que un solo alumno hizo mención negativa respecto de las lecturas, tema que en cuatrimestre anteriores fue muy polémico.
Por último, un detalle adicional a mencionar es que hemos grabado algunos fragmentos de la actividad. Pueden ver el video resultante en: http://www.youtube.com/algo3fiuba#p/a/u/0/W-Z7joZjNyQ.

Soy candidato

A formar parte del consejo asesor del departamento de Computación de Fiuba. Este organismo cumple la función de asesorar al director del departamento en cuestiones relacionadas principalmente a los recursos del departamento. Las opiniones del consejo son precisamiente opiniones no vinculantes, o sea el director puede hacer oidos sordos a las recomendaciones del consejo, pero obviamente eso no es bien visto.

Hace un par de años fui consejero, pero en aquella ocasión fue el claustro de alumnos, en esta ocasión soy candidato por el claustro de docente auxiliares, lo cual implica que solo los docentes auxiliares pueden votarme. Las elecciones son durante esta semana asi que el fin de semana les cuento si fui elegido o no.

Actuando el mergesort

Hoy en Algoritmos 1 vimos algoritmos de ordenamiento y como ejercicio se nos ocurrió hacer una representación actuada de los algoritmos de ordenamiento mergesort y quicksort. Básicamente le pedimos a 10 alumnos que se pararan en hilera y que aplicaran el algoritmo para ordenarse por altura de menor a mayor. No se si a los alumnos les sirvio para entender mejor los algoritmos, pero a mi me pareció muy didactica y entretenido. Relacinado a esta temática les dejo este link de gente que baila representando diversos algoritmos de ordenamiento.

«Mis» libros (¡aramos dijo el mosquito!)

Hace unos dias me cruzé en la facultad con Juan Gabardini a quien le comenté que en Algoritmos 1 estabamos enseñando programación usando Python y con un libro que la propia cátedra escribio: Algoritmos y Programación 1 con Python. Quedé en pasarle el link, ya que el libro está publicado en la web en formato .pdf bajo licencia Creative Commons. El libro fue escrito por varios integrantes de la cátedra e impulsado principalmente por Marga. En lo que a mi respecta, mi aporte pasó por redactar el capítulo de excepciones, un tema que siempre me interesó, pues muchos programadores utilizan mal las excepciones.

Otro libro en el que hice mi aporte fue en Programación Orientada a Objetos: Diseño y programación, de Carlos Fontela. Resulta que Carlos fue uno de los revisores de mi tesis sobre programación orientada a aspectos y al escribir su libro le parecío interesante incluir un capítulo sobre aspectos. Asi que luego de hablarlo conmigo, Carlos basó su capitulo de aspectos en mi tesis y tuvo la gentileza de mencionar mi trabajo. Al mismo tiempo yo me encargué de revisar el capítulo y validar algunos ejemplos de código.

Por último, actualmente me encuentro participando en la traducción a castellano del libro Pharo By Example. La traducción está en curso y esperamos tener un primer borrador de la obra completa hacia mitad de año. En este momento tenemos 3 capítulos completamente traducidos, en estos dias voy a intentar publicarlos.

That’s all folks.

Dinámica clase de repaso en algo3

Junto con Pablo ayer dimos una clase de consulta pre-parcial. Decimos probar un nueva dinámica para intentar hacerla más interactiva que la clásica clase de consulta donde el docente se para al frente y contesta las preguntas de los alumnos. (digo nueva porque nunca la habiamos utilizado y fue un «invento» propio).

Comenzamos por pedirles a los alumnos que ANTES de asistir a la clase, repasaran lo que se dio en cada una de las clases intentado identificar los temas más relevantes de cada una.

Ya una vez en la clase les pedimos que se agruparan en grupos de 5 o 6 personas y anotaran en una hoja lo que les parecian los temas más relevantes de la clase 1. Luego de 10 minutos aproximadamente retiramos las hojas y utilizamos los puntos identificados por los alumnos como disparadores de la revisión. Lamentablemente la mayoria de los alumnos se limitó a copiar la agenda de la clase que Carlos suele poner al comienzo de la ppt. De todas formas fuimos hablando de los distintos temas y contestando las consultas que fueron surgiendo.

Luego pasamos a la clase 2, pero en este caso en lugar de pedirles que identificaran los temas más relevantes de dicha clase, les pedimos que formularan 2 preguntas relacionadas a los temas de la misma (10 min). Luego intercambiamos las preguntas formuladas por cada grupo para que las respondienran (10 min). Finalmente tomamos las hojas con las preguntas y respuestas y las fuimos repasando entre todos, verificando/explicando las respuestas. Obviamente como era de esperar varios grupos habian formulado preguntas muy similares. Al mismo tiempo, ocurrio que algunas de las preguntas/respuestas formuladas por los alumnos dispararon otras preguntas.

La clase continuo con la misma dinámica repasando cada una de las clases. La dinámica duró poco más de dos horas y media y luego nos quedamos alrededor de media hora más respondiendo consultas particulares de algunos alumnos.

Con Pablo quedamos muy contentos con como salió la clase y hemos tenido un buen feedback preliminar de los alumnos.

Comienzo de clases en Algo3

Ya van dos semanas de clases y el cuatrimestre pinta muy prometedor. Para este cuatrimestre el equipo docente del curso 1 está conformado por: Pablo, GabiF, GabiD, Victoria y quien escribe.

La clase 1 la comenzamos haciendo la dinámica de la telaraña, haciendo que cada uno se presente diciendo: nombre, materias que cursa en el cuatrimestre y lenguajes de programación que sabe (obviamente los docentes también nos presentamos). Luego de eso, Pablo hizo la tradicional presentación de la material, comentado la dinámica de las clases, el régimen de cursada y las herramientas de trabajo (página web, lista de correo, etc). Finalmente cerramos la clase con la introducción a Smalltalk (Pharo, para ser más precisos) y la presentación del TP0.

La clase 2 comenzó con una breve explicación de algunas particularidades de Pharo y luego estuvo enfocada en el juego de rol de la máquina de café. Este juego tiene como objetivo entender que los objetos cumplen su objetivo a partir del envio de mensajes a otros objetos. Gabriel se encargó de  facilitar la dinámica del juego que duró unos 25 minutos. Para incentivar la participación de los alumnos (ya que el juego requiere de 7 alumnos) decidimos presentar la «lista de alumnos participativos», la idea es que en esta lista anotamos a los alumnos que participan en las clases y a la hora de definir las notas, aquellos alumnos participativos obtiene una consideración especial (puntualmente si la nota es decimal, la redondeamos directamente hacia arriba: si la nota es 6.1, automáticamente es redondeada a 7). A grandes rasgos el juego consiste en que cada alumno participante representa un objeto y como tal, recibe mensajes y tiene que colaborar con otros objetos (enviando mensajes, claro está) para responder a los mensajes recibidos.Luego del juego decidimos codificar en Smalltalk cada una de clases involucradas, para lo cual pedimos otros tantos alumnos volutarios. Esto nos una hora y media, ya que durante la codificación surgieron algunas dudas de diseño  que promovieron el debate. En paralelo a todo esto, el resto del equipo docente corregia los TP0. Al final de la clase entregamos TODOS los trabajos corregidos, excelente!.

Realmente estoy muy contento con el nivel de participación de los alumnos, si sigue así, creo que vamos a tener clases muy entretenidas.