Ideas para trabajos de fin de carrera

Quiero compartir algunas ideas para posibles trabajos de final de carrera, de haber algún interesado no dude en contactarme.

SmallChat

Es una aplicación de chat integrada en Pharo Smalltalk. Permite chatear y compartir código entre las imágenes. El escenario típico es un estudiante/aprendiz está trabajando en Pharo y se traba con un problema que no puede resolver, entonces inicia una sesión de chat, pide ayuda y puede compartir su código con otros participantes del chat.

Cloudeta

Es un gestor de publicaciones digitales basado en la nube. Básicamente permite tomar archivos de publicaciones (libros, artículos, etc) agregarles metadata y almacenarlas en la nube. Una vez almacenados permite buscar por diversos criterios y compartir los archivos.

AlfredSEAL

Estos dos sistemas ya existentes (y en uso) que permiten gestionar la publicación, entrega y corrección de trabajos prácticos de materias de programación. Ambos sistemas tienen un backlog de funcionalidades por implementar.

 

Retrospectiva Algo3 Segundo Cuatrimestre 2014

En particular voy a referirme al curso de práctica de los miércoles a la tarde y antes de entrar en los hallazgos de la retrospectiva quiero compartir algunas particularidades de este cuatrimestre.

Este cuatrimestre en el curso de los miércoles por la tarde tuvimos tan sólo 9 alumnos, lo cual es muy raro, ya que el cuatrimestre anterior tuvimos más de 50 y en los cursos de la tarde nunca hemos tenido menos de 20 alumnos. Creemos que esta situación se debió a un error que hubo en la publicación de horarios: inicialmente se publicó que el curso se dictaba en el horario de 19 a 22 cuando en realidad se dictaba en el horario de 16 a 19. Esta inusualmente pequeña cantidad de alumnos nos permitió utilizar el laboratorio de computadoras en lugar de un aula tradicional lo cual cambió bastante la dinámica de las clases. Más aún, generó una situación rara para FIUBA: una materia de comienzo de carrera, con 9 alumnos, dos docentes y una computadora por alumno, ¡INCREIBLE!
Es la primera vez que como docente de FIUBA me encuentro en una situación así. Al mismo tiempo creo que es la primera vez que TODOS los alumnos que comenzaron a cursar aprobaron la cursada (digo los que comenzaron a cursar pues por el problema de la publicación de horarios hubo que gente no pudo cursar o lo hizo en otro curso).

Ahora sí, los hallazgos de la retrospectiva:

  • Mantener
    • Uso de dos lenguajes
    • Videos explicativos
    • TPs de Juegos
    • Clases prácticas en laboratorio
    • Acompañamiento docente
    • Uso de Jenkins en el TP final
  • Cambiar/Mejorar
    • Publicar el material de la clase teórica antes de clase
    • Más detalle en la clase de MVC (agregar un video podria ayudar)
    • La relación tiempo/longitud de los parciales
  • Probar
    • Agregar más ejercicios a la guia
    • Más ejercicios para entregar via Alfred

Al ver las notas de la retrospectiva compartidas por los docentes de los cursos de los jueves veo varios puntos comunes en que me parece deberemos trabajar.

Personalmente estoy muy conforme el resultado del cuatrimestre y debo admitir que disfruté mucho la dinámica que logramos teniendo un curso tan chico.

 

Experiencias de Enseñanza de POO en WISIT 2014

El sábado pasado estuve participando del WISIT 2014. Junto con Pablo Suárez presentamos el enfoque estamos utilizando en FIUBA para enseñar Programación Orientada a Objetos.

En nuestra sesión destacamos 4 puntos que consideramos centrales en nuestro enfoque:

  • Uso de técnicas de educación centrada en el alumno (Learner Centered Teaching)
  • Uso de herramientas informáticas: Campus Virtual de la universidad, Foros, Sistema de gestión de TPs (alfred) y videos explicativos.
  • Uso de dos lenguajes: Smalltalk y Java
  • Test-Driven: no solo enseñamos y usamos TDD, sino que también el desarrollo de los trabajos tiene algo de TDD pues las especificaciones de los que los alumnos deben resolver, la entregamos siempre en forma de pruebas.

Creemos que la presentación salió muy bien y notamos a la audiencia muy interesada. De hecho al finalizar nuestra exposición recibimos varias consultas y más de una persona manifestó intenciones de probar Alfred.

Para facilitar la sesión sesión utilizamos un Prezi que armó Pablo y que está disponible aquí. También armamos este póster que enviamos en su momento a los organizadores del evento como parte de nuestra propuesta de sesión.

Curiosamente hubo otras dos sesiones en las que también se presentaron enfoques de enseñanza de POO. Una de esas sesiones estuvo a cargo de Alfredo Sanzo y Lucas Spigariol quienes contaron su enfoque fuertemente basado en actividades de representación/actuación y en el uso de objetos físicos.

La otra sesión sobre POO estuvo presentada por Nico Passerini, Javi Fernández y Pablo Tesone, quienes mostraron Wollok, una herramienta basada en Eclipse y un lenguaje desarrollado por ellos mismo con el fin específico de enseñanza de POO.

Ambos enfoques me parecieron muy interesantes.

Celebro la iniciativa Uqbar Project de llevar adelante este evento. ¡Que se repita!

Clase en el posgrado de la UCA

La semana pasada dicté una clase sobre Extreme Programming en el contexto de la especialización en Ingeniería de Software de la UCA. Más concretamente la clase fue en el contexto de la materia Métodos de desarrollo de Software que dicta Andrés Diaz Pace.

Previamente Mariano Tugnarelli había dado una introducción a los métodos ágiles y Scrum. Lo cual preparó el contexto para meternos con XP.

El grupo de alumnos resultó ser bastante heterogéneo, varios de ellos trabajando activamente en el sector de software, algunos electrónicos, algunos graduados recientemente y otros hace ya bastante, en su mayoría Argentinos, pero también varios extranjeros. Muy poco con conocimientos de métodos ágiles.

Inicialmente hicimos una actividad de mitos y verdades la cual nos sirvió de disparador para ir entrando en varias conceptuales.

Algunos recursos interesante relacionados a los que vimos en la clase:

agiles_uca

#ConstruccionDeSoftware, sobre el título y la tapa

Inicialmente titulamos al libro “Desarrollo ágil” e incluso lo presentamos a la editorial con ese nombre, pero siempre supimos que deberíamos sentarnos a repensarlo.

Llegado el momento de buscar el título definitivo comenzamos compartiendo propuestas por mail, luego hicimos una sesión de brainstorming y así llegamos a 5 títulos candidatos. Luego, con esos 5 títulos, hicimos una encuesta entre un grupo de colegas y de ahí salió el título final: Construcción de software: una mirada ágil.

Respecto de la tapa, la cuestión fue menos pensada (al menos entre los autores) y creo que en un punto, y sin haberlo planeado, quedó mucho mejor de lo esperado. Nuestra idea era simple: tener en la tapa una de las imágenes del libro y el nombre de los seis autores. A partir de ahí fue todo trabajo del equipo de diseño de la editorial. La imagen de tapa pertenece al capítulo 2, donde es utilizada para explicar la idea de desarrollo iterativo e incremental.

Personalmente lo que más me gusta de la tapa es el contraste del título con la imagen y su fiel reflejo del contenido del libro. La palabra Construcción en el título sugiere algo técnico, lo cual contrasta con la imagen que muestra una persona. Este mismo contraste está planteado a lo largo de todo el libro: la construcción de software como un proceso técnico pero llevado a cabo por un conjunto de personas y gobernado por las relaciones entre estas. En este sentido hay capítulos que tratan de cuestiones plenamente técnicas como integración continua y capítulos que tratan de cuestiones completamente humanas como la comunicación entre los miembros del equipo.

Y para coronar este contraste tenemos las primeras líneas del prólogo que gentilmente escribió Juan Gabardini:

—¿Y vos qué hacés, Juan? ¿Seguís trabajando con computadoras?

—Mmm… ahora trabajo más con personas que con computadoras.

Creo que ni habiéndolo planificado habría salido mejor.

tapa_una_mirada_agil

El pajarraco Scrum con Qubics

El lunes pasado en EIS hicimos la ya clásica actividad de simulación de Scrum conocida como “”El pajarraco Scrum”.

A diferencia de otras veces en lugar de rastis utilizamos qubics lo cual permitió que realizar obras más “estilizadas”. De la simulación participaron 14 alumnos divididos en 3 equipos, cada uno con su correspondiente product owner. Los 3 product owners fuimos Ingrid (alumna colaboradora de la cátedra), Jona (un alumno que ya había cursado la materia) y yo.

Curiosamente a pesar que los cubics son más maleables que los rastis, hubo equipos que llegaron al final de iteración sin cumplir con la visión de producto.

pajarraco_qubic_2

pajarraco_qubic_3

 

 

pajarraco_qubic_1

Y así pasó ASSE 2014

Ayer terminó ASSE 2014, fueron tres días muy intensos en las instalaciones de la Universidad de Palermo. Como mencioné previamente, el simposio comenzó con el taller de Arquitectura emergente.

Entre las cosas que más me gustaron destaco el taller de Arquitectura emergente, las charlas de los conferencistas, la gran variedad de las temáticas de los trabajos presentados y el debate sobre enseñanza de la ingeniería de software. Bueno, básicamente todo, ;-)

Un punto para destacar es que por primera vez en el contexto de las JAIIO se entregaron los Premios Sadosky a los mejores trabajos seleccionados entre todos los simposios de JAIIO y fue justamente un trabajo de ASSE el que se llevó el primer premio: An energy-saving model for service-oriented mobile application development, de  Ignacio Lizarralde, Cristian Mateos y Alejandro Zunino.

Si bien el evento ya terminó, mi trabajo como parte de la organización todavía continúa pues aún tenemos que consolidar información estadística del simposio y gestionar la publicación de algunos trabajos en el Journal de SADIO.

banner_jaiio

 

 

 

 

ASSE 2014, largamos

Hoy tuvimos la primer actividad de ASSE, fue un taller de Arquitectura Emergente de dictado por Diego Fontdevila. El taller duró 4 horas y estuvo dividido en una primera parte teórica y una segunda muy práctica que sorprendió muy positivamente a los asistentes.

Del taller participamos unas 9 personas con perfiles muy variados incluyendo desde alumnos de grado hasta empresarios pasando por docentes, doctores y profesionales de la industria. Esta gran variedad resultó muy enriquecedora para las charlas y actividades del taller.

Más allá de las cuestiones compartidas en el taller, cada asistente se llevó su ejemplar de Construcción de Software: una mirada ágil.

arq_asse

Se viene el libro….

Hace un par de días entró en imprenta el libro de ingeniería de software que empecé a escribir hace unos dos años junto a un grupo de colegas de la Fiuba.

La idea era escribir un libro sobre métodos ágiles, luego de un par de charlas refinamos el objetivo y decidimos escribir un libro sobre métodos ágiles que cubriera el proceso completo de desarrollo de software.

Una de las motivaciones para escribir el libro fue que no existen en la actualidad (o al menos no han tenido mayor difusión) libros escritos en castellano sobre métodos ágiles que cubran el proceso de completo de desarrollo de software. Los libros existentes sobre esta temática escritos en castellano están enfocados en algún aspecto particular. Por ejemplo los libros de Martín Alaimo tienen un foco humano/de gestión, mientras que el libro de Carlos Blé está enfocado en TDD. Existe un libro que cubre en gran medida el proceso completo de desarrollo software llamado Scrum y XP desde las trincheras, pero es una traducción de una obra originalmente en inglés.

Al mismo tiempo, la motivación va más allá del idioma. Los métodos ágiles ponen un foco importante en las personas y en ese sentido creemos que la idiosincrasia latinoamericana merece un libro a medida escrito por latinoamericanos.

El libro, más allá de lo que el título pueda sugerir, es un libro de ingeniería de software. De hecho la mayoría de los contenidos son parte de la materia que dictamos con @pablitosuarez en UNQ.

Todos los autores somos docentes y también trabajamos en la industria, por ello creemos que el libro puede resultar muy útil como libro de texto para el dictado de una materia y para profesionales de la industria con intenciones de conocer y experimentar con métodos ágiles.

En los próximos días compartiré algunos detalles y curiosidades del libro, por el momento les dejo una de las imágenes del libro que más me gusta.

15.1

Próximos eventos en lo que resta del 2014

Como es costumbre, la primera mitad del año no pasa nada y la segunda está tan cargada de eventos que resulta difícil decidir a cuales asistir. Comparto aquí una lista de los evento que personalmente me resultan de interés:

Del 14 al 15 de agosto se llevará a cabo en Facultad de Ingeniería de la UBA, el Simposio Argentino de Sistemas Embebidos, SASE 2014. Un evento del que nunca participé pero del cual planeo participar este año.

Del 1 al 5 de Septiembre tendrá lugar en la Universidad de Palermo la edición número 43 de las Jornadas Argentinas de Informática. Estas jornadas incluyen una serie de Simposios entre los que se encuentra el Simposio Argentino de Ingeniería de Software del cual tengo el honor de ser co-chair.

También en Septiembre, más precisamente 26 y 27, tendremos las primeras Jornadas Nacionales de Métodos Ágiles que se realizarán en las instalaciones de la Universidad de Belgrano con formato completamente Open Space.

Octubre viene cargado con 3 eventos en la semana del 20 de Octubre.

Del 23 al 25 de Octubre tendremos la séptima edición de las Jornadas Latinoamericanas de Métodos ágiles, Agiles 2014 a desarrollarse este año en Medellín (Colombia).

Casi al mismo tiempo que Agiles 2014 tendremos la RubyConf Argentina, una vez más en las instalaciones del Konex.

El tercer evento en esos mismos días es el Congreso Argentino de Ciencias de la Computación, CACIC 2014, que se desarrollará en las Universidad Nacional de la Matanza.

Ya en noviembre (5,6 y 7), en la ciudad de Córdoba, tendremos la Smallktalks 2014. Esta vez en las instalaciones de la Universidad Tecnológica Nacional.

Más allá de los eventos aquí mencionados, me consta que hay programados algunos más, pero no menciono pues no estan entre los que suelo asistir.