Cierre de cuatrimestre en Algo3 (2013-2)

Comienzo compartiendo algunos hechos generales que personalmente me resultan de interés:

  • Consolidamos el uso de campus virtual
  • Consolidamos el uso del sistema de corrección de TPs
  • Gran parte de los grupos pudo trabajar exitosamente con servidor de integración continua
  • Curiosamente el  curso de los jueves por la tarde tuvo record de alumnos

Ya hablando en particular del curso de los jueves por la tarde, surgieron los siguientes temas en la retrospectiva:

  • (+) Los videos explicativos
  • (+) El uso de dos lenguajes
  • (+) El uso del sistema de corrección/gestión de TPs
  • (+) El TP final
  • (-) Poco tiempo para resolver los parciales => cuestión recurrente a pesar que Carlos a intentado mejoras ya lo hablaremos en equipo
  • (-) Poca explicación sobre cómo crear elementos visuales con Java => Vamos a proveer una guía/ejemplo/video para facilitar este tema
  • (-) Que el corrector automático no corra todo el tiempo => Este un tema de infraestructura que esperamos tener resulto para el cuatrimestre próximo.

Ya en el plano personal, la experiencia con mis grupos me resulto excelente. Tuve 3 grupos que trabajaron acorde a mis expectativas, haciendo test-driven development e integración continua y cumpliendo con las fechas estipuladas. Creo que por primera vez todos los grupos a mi cargo cumplieron con la fechas estipuladas.

algo3-2013-2

Largamos el TP Final de Algo3

Este cuatrimestre el TP fue ideado por GabiD con aportes de DiegoM y PabloM. Consiste en un juego por turnos en el que el usuario debe mover su vehículo por una ciudad llena de obstáculos de distinto tipo, intentando minimizar la cantidad de turnos utilizados y maximizando el puntaje acumulado.

Yo tengo a mi cargo 3 grupos los cuales vienen trabajando muy bien. Para facilitar las cuestiones tecnológicas y permitir que los alumnos se concentren en OO, les dimos un proyecto base de ant y un par de videos que explican cómo dar los primeros pasos con Java, Ant y Subversión. Adicionalmente me encargué de configurar un servidor de integración continua. Para esto último estamos usando el servicio gratuito que muy gentilmente nos brinda la CloudBees. Como de costumbre hemos hecho mucho énfasis en que desarrollen sus trabajos haciendo TDD y según muestran los reportes de cobertura parece que lo estan haciendo.

algo3-g1-2013-2

Cierre de cuatrimestre a puro TDD (algo3, 1c-2012)

Y se fué uno más, pero distinto y para bien. En líneas generales mantuvimos la misma modalidad que los cuatrimestres anteriores, pero creo que en esta ocasión hemos manejado mejor los tiempos y hemos resultado «más convincentes» en algunas cuestiones.

Entre los cambios del curso Jueves-tarde sumamos un nuevo colaborador docente: Diego Marcet, graduado de la casa, ex-alumno de la materia y ex-compañero mio de trabajo en Southworks.

Otro de los cambios implementados fue el uso del campus virtual (basado en Moodle) para la publicación del material de estudio. Yo personalmente fuí un poco más allá y lo utilicé para manejar la interacción con mis grupos vía los foros. La ventaja que le veo al uso de foros tiene que ver con que la resulta muy cómodo visualizar el hilo completo de la conversación.

A mi parecer la particularidad más destacada (al menos de nuestro curso) fue el fuerte incampié que hicimos en el uso de TDD, lo cual dió sus frutos en el trabajo final, donde varios alumnos desarrollaron gran parte de trabajo usando esta técnica.  Es más, la cantidad de pruebas unitarias de los TP finales fue record en el caso de los TPs que yo corregí: me entregaron TPs con más de 200 pruebas unitarias, llegando a niveles de cobertura llegando al 80%.

La última innovación a mencionar es la práctica de integración contínua. Si bien este tema lo vemos en la teoría desde hace varios cuatrimestres, este año fui más allá y levante un servidor de integración contínua para mis alumnos (lamentablemente no tenía una gran infraestructura, asi que solo lo pude hacer para los 3 grupos a mi cargo). El proceso de build incluyó: compilación, ejecución de pruebas y medición de cobertura.

Si bien no hicimos la dinámica de retrospectiva global, yo hice una más reducida con los alumnos de mis grupos y el feedback fué muy positivo: solo surgieron algunas cosas menores para mejorar que comentaré en un próximo post.

[Algo3] Restrospectiva 2010-2

El jueves pasado fue la última clase de algoritmos 3 y como es costumbre desde hace ya un par de cuatrimestres, hicimos una retrospectiva con los alumnos. Comenzamos la actividad con una dinámica para romper el hielo y así facilitar la participación de los alumnos en la retrospectiva. Para la retro utilizamos la dinámica del timeline para identificar los temas y sucesos más relevantes, luego trabajamos en debatir al respecto y intentar identificar soluciones.

Los alumnos estuvieron muy participativos, hubo mas de 110 post-its.

Entre los puntos positivos se destacaron:

  • «Felicidad» con Smalltalk, jajajja, varios destacon como positivo haber aprendido varios lenguajes y en particular Smalltalk. Incluso alguno dijo haberse quedado con ganas de más Smalltalk.
  • Prácticas de ingenieria: varios mencionaron como muy útil/entretenido  el hecho de aprender y utilizar técnicas como TDD y herramientas como SVN, ANT, etc
  • La relevancia de los temas vistos en la materia, pues todo les parecio muy útil y aplicable en la vida real

Por otro lado entre los puntos conflitivos encontramos:

  • Falta de tiempo en los examenes
  • Falta de soporte en las herramientas
  • Inestabilidad de Pharo: ja! no puedo no hace un comentario sobre esto, es cierto puede que Pharo esté un poco inestable pero es un entorno muy abierto y todos podemos colaborar y tiene una comunidad muy activa en su desarrollo, cosa que no es tan común en otros ambientes.
  • Clases prácticas dificiles de seguir: en ocasiones de tornaban densas, sobre todo la parte de escritura de código
  • La clase teórica de generics fue densa y no se terminó de entender el tema
  • Poca disponibilidad de algunos docentes para consultas de parciales / TPs
  • Las lecturas en inglés siguen siendo un obstáculo para algunos alumnos

A pesar de que he mencionado más puntos negativos que positivos, mi balance es positivo pues no importa la cantidad de puntos sino el peso de cada uno. Al mismo tiempo creo que muchos los puntos negativos son de «fácil» solución.

Les dejo algunas fotos de la actividad.

Si alguien cree que me olvidé de algo, no duden en agregarlo como comentario.

 

Retrospectiva con alumnos en Algo 3

El pasado jueves fue la última clase de Algo 3 y nos pareció el momento indicado para hacer una restrospectiva con alumnos. Yo tomé el rol de facilitador. Para la retrospectiva utilizamos la técnica que Diana Larsen utilizó en Agiles2009 y que está explicada en su libro Agile Retrospectives. Muy a grandes rasgos la técnica tiene la siguiente dinámica:

  1. En una pared se traza un timeline (que en nuestro caso representaba el cuatrimestre) y se le pide a los participantes que escriban en post-it los eventos y sensaciones que tuvieron durante los largo del periodo del tiempo en cuestión. Cada post-it se ubica sobre la línea de tiempo considerando su “positividad/negatividad” ubicando más arriba los post-it con referencias a cosas positivas y más abajo los de referencias negativas. Cada participante puede poner varios post-it y no importa que distintos participantes hagan referencia al mismo tema.
  2. Una vez completo el timeline con todos los post-it se pasa a leerlos uno por uno  “clasificándolos” en áreas temáticas.
  3. Cuando se han clasificado todas las historias, se pide a los participantes que voten aquellos temas sobre los quieren trabajar.
  4. Finalmente, los temas más votados son trabajados en mesa redonda. En nuestro caso las áreas más votadas fueron:
    1. Contenido de la materia (16 votos)
    2. Clases prácticas y Trabajos prácticos (12 votos)

Respecto del contenido de la materia los actions items más importantes que sacamos fueron:

    • Reveer la decisión de dar lecturas obligatorias en inglés, pues ha resultado un impedimento muy importante para muchos alumnos.
      • Continuar dando Smalltalk, pero dar más clases prácticas al respecto, pues costó mucho programar el TP Smalltalk.
        • Dar la clase de Scrum antes (en este cuatrimeste fue la última clase). La idea seria darla antes de comenzar con el TP grupal para que puedan utilizarlo al hacer dicho TP.
          • Dar más soporte para el uso de ANT. Este punto no lo comparto, me parece que es una herramienta muy simple y con lo que se dió en clase y un poco de voluntad tiene que ser suficiente para hacer lo que les pedimos.
            • Ajustar la clase de persistencia, pues dejo más interrogantes que respuestas.

              En cuanto a las clases prácticas:

                • Continuar con las clases en el laboratorio
                  • Compartir el diseño del TP con otros grupos para tener una visión distinta.

                    Sin duda al hacer la retrospectiva del con todo el equipo docente tomaremos estos en consideración para el cuatrimestre próximo.

                    Algunas que se mencionaron durante la restrospectiva y que quisiera destacar fueron:

                      • Los alumnos vieron como positivo el hecho de utilizar Smalltalk, pues les permitió tener acercamiento más concreto a la idea de objetos que se comunican enviandose mensajes.
                        • El reconocimiento de los alumnos a la labor del equipo docente, contestando consultas tanto presenciales en las clases como en la lista de correo de la materia.
                          • Les resulto de gran interés la clase sobre tendencias que dimos con Eugenio.

                            Personalmente debo decir que termino el cuatrimestre muy contento pero también bastante agotado, la carga de trabajo de este cuatrimestre fue mucho mayor a la que estábamos acostumbrados. Estoy contento porque creo que el enfoque adoptado permitió a los alumnos aprender mejor los conceptos de la materia y en relación a esto quisiera mencionar un episodio que me ocurrió la semana pasada. Estaba hablando con uno de mis grupos, en un momento les pregunté porque no habían avanzado aún con las clases de interface de usuario y un alumno me contesto: “es que aún nos falta agregar algunas pruebas unitarias para asegurar el correcto funcionamiento del modelo”. Esto no dice cuando aprendieron de objetos, pero si refleja claramente que entendieron la importancia de las pruebas.

                            Me despido con algunas fotos que tomamos durante la retrospectiva.

                            Imagen0039 Imagen0038

                            Imagen0040

                            SOA & Cloud computing en Fiuba (completo)

                            Dimos la clase y creo que a los alumnos les resultó entretenido.El título que le dimos a la clase fue: Tendencias en el desarrollo de software. Me parece una buena idea la de hablar sobre tendencias pero sin duda deberemos revisar y actualizar los temas expuestos teniendo mucho cuidado con la profundidad con la que tocamos cada tema.

                            El slide deck utilizado está disponible aquí.

                            SOA & Cloud computing en Fiuba

                            Esta tarde en el contexto de Algo3 y para ir cerrando el cuatrimestre, junto con Eugenio Yolis vamos a estar dando una clase de tendencias y estado del arte del desarrollo del software. Eugenio en particular va a estar centrado en SOA mientras que yo hablaré sobre Cloud computing y temas aledaños.

                            Como siempre las clases son abiertas, asi que gustan pueden pasar por el aula 203 de Paseo Colon (Fiuba) a partir de las 19 hs.

                            Mañana les cuento como salió.

                            Cambios en Algo3

                            Desde hace ya un tiempo con el equipo de cátedra de algortimos 3 hemos estado trabajando en algunos cambios en la materia los cuales pensamos incorporar en el cuatrimestre que se encuentra próximo a comenzar. Entre los cambios se encuentran:

                            • La lectura obligatoria de algunos artículos/capítulos/papers.
                            • Un estudio más profundo del polimorfismo y conceptos afines
                            • Un mayor foco en la resolución de ejercicios
                            • Inclusión de más trabajos prácticos, incluyendo uno en Smalltalk

                            Cada uno de estos cambios tiene una justificación, la lectura de papers/artículos tiene que ver con que no se puede pasar por la facultad estudiando de los apuntes de clase, de vez en cuando hay que leer material y el material existente sobre OO es por demás abundante. El estudio del polimorfismo y conceptos relacionados son posiblemente los temas más importante de la materia y hasta el dia de hoy el tiempo dedicado a dichos temas nos parece insuficiente. La única forma de aprender a diseñar es ejercitando y es por que hemos decidido aumentar el foco en los ejercicios. Por último, si bien hasta ahora habia cierta libertad en la elección del lenguaje de programación la gran mayoria de los alumnos elegía trabajar con Java; con la inclusión de un trabajo en Smalltalk buscamos que los alumnos experimenten una implementación distinta del paradigma de objetos.

                            No estamos seguros de como resultará todo esto, pero estamos convencidos que permitirá a los alumnos tener un mejor entiendimiento de la orientación a objetos. En diciembre veremos si nuestro enfoque ha sido correcto.