Actividades en Salta

Actividades en Salta

Esta semana estaré de visita en Salta para participar del cuarto Congreso Nacional de Ingeniería Informática / Sistemas de Información  (CONAIISI) donde estaré presentado el trabajo realizado sobre prácticas ágiles en el contexto de nuestro proyecto de investigación en UNTreF.

Adicionalmente este miércoles 16 de estaré dando una charla abierta en la Universidad Nacional de Salta en la que hablaré sobre prácticas de ingeniería actuales en el desarrollo de software (automatización de tests, tdd, integración y despliegue continuos, devops, modern XP, etc). Los interesados en asistir pueden ver más información y anotarse aquí, ya que si bien el acceso es gratuito se require registración previa.

Luego de la charla mi agenda está libre así que encantado de compartir unos tragos con quienes gusten sumarse :-).

 

Cierre de AyDOO 2016 en UNTreF

El cuatrimestre terminó y en mi opinión su desarrollo estuvo bastante en línea con lo planeado inicialmente.

Comenzando por los números duros:

  • Hubo 16 inscriptos, 2 de ellos nunca vieron a clase, 1 vino solo una clase y los restantes 13 completaron la cursada.
  • La nota promedio de cierre de cursada fue 7,9/10.
  • La evaluación general de la materia realizada por los alumnos (vía encuesta anónima) fue de 7,5/10.

Personalmente quedé muy conforme con el desarrollo de la materia, obviamente siempre hay cuestiones que mejorar, pero en términos generales creo que la dinámica fue apropiada. Creo que el uso del campus virtual ayudó mucho a la dinámica y personalmente estoy muy conforme con la herramienta utilizada (Eliademy).

Entre los puntos positivos destacados por los alumnos estuvieron:

  • El uso de un lenguaje nuevo para ellos (Ruby), ya que hasta el momento la mayoría había trabajado casi exclusivamente con Java. Cabe aclarar que no trabajamos solo con Ruby, sino que comenzamos trabajando con Java y luego pasamos a Ruby. En este sentido varios alumnos sugirieron comenzar con Ruby mucho antes.
  • Los videos. Para varias cuestiones (principalmente de carácter técnico) compartí videos grabados por mi, que los alumnos encontraron muy útiles.
  • Los casos reales. En casi todos los temas que fuimos viendo, fui compartiendo casos reales que me he encontrado en mi carrera profesional como ingeniero.

Entre los puntos negativos a mejorar destacaron:

  • La estimación de la carga de trabajo. Inicialmente yo había estimado (y explicitado) unas 4 horas semanales de trabajo extra clase, pero según reportaron los alumnos, en promedio debieron dedicar unas 10 horas semanales.
    => Definitivamente este es un punto a mejorar y lo que pienso hacer al respecto no es modificar las tareas semanales sino simplemente comunicar que se requerirán unas 10 horas de trabajo semanal extra clase.
  • La falta explícita de recreo. Dado que la dinámica de las clases incluye actividades de trabajo, no suelo dar recreos explícitos, sino que para mi el momento de recreo es  cuando hacen las actividades. Típicamente doy X minutos para hacer las actividades y en ese tiempo son libres de tomar una porción para hacer su recreo. Fui explícito respecto a esto pero evidente a los alumnos no les gusta y quieren que de un recreo explícito.
    => Sinceramente no estoy convencido de cambiar esto, pero es algo que evaluaremos en la próxima edición. Una opción que estoy barajando es dar un recreo de 10 minutos pero que sean los propios alumnos quienes lo pidan explícitamente en cada clase y si nadie lo pide, entonces posiblemente no se haga.

Finalmente hubo algunas opiniones contradictorias de los alumnos respecto del nivel de exigencia. Si bien hubo coincidencia en que el nivel de exigencia fue alto, algunos lo consideraron muy positivo mientras que otros lo consideraron negativo.

aydoo2016

Actividad extra-curricular @UNTreF: Desarrollo con Vagrant

Este Jueves 28 de Julio voy realizar una actividad extra-curricular en @UNTreF. Se trata de una sesión acerca de Vagrant, una poderosa herramienta para manejo de ambientes virtualizados.

Creo que Vagrant puede resultar una herramienta muy útil para los alumnos que deban cursar materias de programación avanzada. La cuestión es: en las materias de programación básica, típicamente basta con instalar un IDE (tipo Eclipse) y listo, no se requieren herramientas adicionales. Pero en las materias más avanzadas típicamente hay que utilizar algunas herramientas más, como kits de desarrollo (SDKs), bases de datos, web servers, etc, etc. Es ahí donde el uso de Vagrant puede simplificar mucho la preparación del ambiente.

La idea de esta sesión es hacerla online vía Google Hangouts y con participación activa de la audiencia, o sea: la sesión mezclará explicaciones con consignas que los alumnos realizarán en sus propias máquinas. Para esto los alumnos participantes deberán tener instalado en sus máquinas Git, Virtual Box y Vagrant.

Si este primer experimento funciona relativamente bien puede que sea el punto de partida para un conjunto de actividades de capacitación online. Veremos

Preparando Ingeniería de Software 2016 @ UNTreF

En segundo cuatrimestre de 2016 dictaré la materia Ingeniería de Software junto a mi colega el ingeniero Pablo Tortorella (@pablitux). De cara a facilitar a los potenciales alumnos la organización de su cuatrimestre queremos compartir algunas cuestiones referentes a la dinámica de la materia para esta edición 2016.

  • La materia se dictará los jueves de 18 a 22 (si, jueves) en la sede Lynch.
  • Más allá de la asistencia formal requerida por reglamento, recomendamos fuertemente la asistencia a clase.
  • La dinámica de evaluación será continua: tareas semanales + trabajo práctico final (últimas 5 semanas del curso).
  • Utilizaremos una herramienta virtual de soporte para centralizar la publicación, entrega y evaluación de tareas. Las tareas serán principalmente lecturas + cuestionarios + ejercicios de programación.
  • Trabajaremos con GNU+Linux (obligatorio) y Ruby.
  • Estimamos que la carga de trabajo extra clase será aproximadamente de 6 horas semanales (aunque puede que sea un poco mayor durante el desarrollo del trabajo final).

Preparando Análisis y Diseño Orientado a Objetos en UNTreF

Por estos días me encuentro preparándome para dictar esta materia el primer cuatrimestre de este año. Si bien ya he dictado este materia en otras ocasiones esta vez tengo el desafío de dictarla solo, las veces anteriores la dicté en conjunto con @dfontde. En base al feedback obtenido de las dictadas anteriores y de algunas ideas que probando en otras materias, he decido hacer algunos ajustes a la dinámica de dictado de la materia.

El avance de internet, las redes sociales y la sobrecarga de información requieren que la dinámica de las materias se adapte, por ello más allá de la clase presencial semanal tendremos un modelo de aula extendida basado en un plataforma web. En base a esto se espera que los alumnos tengan una interacción constante con todo el grupo de estudio. Por cada hora de clase presencial se espera una dedicación de al menos una hora de trabajo fuera del aula. Dicho esto y pasando en limpio: los alumnos que cursen la materia deberán dedicar al menos 8 horas semanales todas las semanas. Dependiendo de cuanta maña pueda darse cada alumno, puede que la materia le insuma unas 6 horas semanales o puede que le insuma unas 10. El punto clave aquí es que a diferencia de otras materias no es posible llevar esta materia «haciendo la plancha» y estudiando a 30 horas seguidas los días previos a la evaluación. Se quiere una dedicación constante.

Respecto del mecanismo de evaluación no me gusta tomar examen escrito (aunque no lo descarto) y por ello estoy diseñando un mecanismo de evaluación basado en tareas semanales. La mayoría de estas tareas será de índole individual. Las tareas consistirán principalmente en lecturas con cuestionarios asociados y resolución de problemas de modelado y programación.

Análisis y Diseño Orientado a Objetos en UNTreF

Este cuatrimeste estamos con DiegoF dictando esta materia por primera vez, un desafio por demas interesante.

Nos hemos plateado como objetivos:

  • Que los alumnos desarrollen una capacidad de análisis y diseño para atacar problemas de distinta índole, tanto a nivel software como hardware.
  • Presentar un método formal de trabajo aplicable a su vida profesional.
  • Construir una caja de herramientas de diseño para su uso en posteriores materias y  también en el ejercicio profesional.

Complementariamente a estos objetivos de alto nivel también pretendemos:

  • Trabajar con varios casos de estudio, pues creemos que la mejor manera de aprender a diseñar es diseñando y revisando diseños.
  • Desarrollar actividades periódicas que complementen la teoría y ayuden a poner en práctica los conceptos expuestos.
  • Trabajar con distintos tipos de sistemas: de información, de tiempo real y embebidos entre otros.
  • Proveer herramientas para documentar un diseño.
  • Reflexionar sobre el costo y el valor de la flexibilidad.

Si bien no hemos encontrado un libro de texto que cubra la totalidad de los temas que queremos cubrir, hemos decido recomendar a los alumnos el libro de Craig Larman, UML y Patrones: Introducción al análisis y diseño orientado objetos y al proceso unificado. Esta decisión esta basada en que el mencionado libro provee una buen acercamiento a los temas centrales de la materia utilizando herramientas muy difundidas y de uso cotidiano en la actualidad. Además el libro desarrolla un caso de estudio de punta a punta.
Entre los libros que hemos decidido utilizar para distintos temas puntuales estan:

A medidas que vaya corriendo el cuatrimestre intentaré ir compartiendo los resultados y descubrimientos que hagamos.

Programa de tutorias en UnTreF

Hace un par de semanas estuvimos junto con DiegoF y MarianoT coordinando un encuentro con alumnos de los primeros años de la carrera de ingeniería en computación de la Untref. El encuentro fue en contexto del programa de tutorias. La cite fue a las 19 hs y comenzamos actividad con algunas actividades típicas para romper el hielo. En este sentido no dejo de asombrarmo como se suelta la gente (particularmente los hombres) al hablar de futbol. Digo esto porque una de las cosas que hicimos para presentarnos fue, sentados en ronda, decir nuestro nombre, contar a que altura de la carrera estábamos y decir si Maradona debía seguir o no al frente de la selección. Las opiniones sobre Maradona fueron de lo mas diversas y fue muy divertido.

Una vez hechas las presentaciones hablamos sobre las dificultades que los alumnos habían encontrado durante el primer año de cursada. Todos coincidieron en la gran dificultad que les implicó el cambio de ritmo entre la escuela secundaria y la universidad. Si bien algunos ya habian tenido algunos inconvenientes en el curso de ingreso, aquellos que pasaron el ingreso sin mayores complicanes, luego se vieron complicados al cursar las materias del primer año. Al analizar las causas de las dificultades afrontadas, todos los indicios terminaron acusando a la falta de organización del tiempo de estudio. En realidad creo este término es un poco generico, siento un poco más concreto, resulto ser que las horas de estudio dedicadas al estudio más allá de las horas de cursada era muy poco. En general el tiempo de estudio extra clase dedicado era inferior a 5 horas. Esto resulta ser muy poco considerando que la carga de cursada en general rondaba las 20 horas semanales.

Durante los primeros años de carrera recuerdo que una profesora de matemática me dijo que por cada hora de clase había que dedicar al menos una hora de estudio adicional. Si aplicamos esta heurística al caso en cuestión, los alumnos deberian dedicar unas 20 horas de estudio cuando en realidad se encuentran aplicando alrededor de 5.

Hablando sobre la organización del tiempo, en primer lugar hay que conseguirlo y luego hay que saber administrarlo. Por ejemplo recuerdo que en mis dias de estudiante, yo organizaba mi tiempo de estudio en slots de 2 horas máximo, pues me resultaba imposible mantener las concentración por más de 2 horas seguidas.

Tanto Diego como Mariano también aportaron sus consejos para organizar el tiempo de estudio y algunos otros consejos generales para «sobrevivir» en la universidad.

A pesar de ejercer la docencia desde hace ya varios años, creo que esta fue la primera vez que compartí explícitamente con alumnos mis técnicas de estudio y fue una experiencia muy gratificante.

Espero que a los alumnos les haya resultado el encuentro.

Las herramientas y el contexto

Como ya mencioné anteriormente, junto con DiegoF estamos dictando una materia de análisis y diseño en la UnTreF. Resulta que en la última clase me toco dar «User stories». Si bien es un tema que me animo a decir conozco con cierta profundidad, no estoy seguro de haber transmitido correctamente la idea. Resulta que la mayoría de los alumnos, por su joven promedio de edad (debe estar en 20 años),  no tiene experiencia laboral en el desarrollo de software. Al mismo tiempo antes de user stories vieron el método de análisis ambiental de Ed. Yourdon y el ya clásico modelo de casos de uso del proceso unificado. Con este contexto resulta dificil entender como es que pueden funcionar las user stories sin tener en claro la cultura agile. ¿Cómo es posible que una simple oración sirva de especificación ? Pues ahí está la cuestión, la user story no es la especificación, sino simplemente un recordatorio de hablar sobre algo impotante para el usuario. Esto implica que el usuario/cliente/product owner estará disponible para consultas y trabajo conjunto durante la construcción del producto.  Durante la clase intenté explicar ciertas cuestiones de las user stories por contraposición con algunas otras herramientas tradicionales, pero dado que los alumnos no tenian experiencia en desarrollo de software (más allá del ambiente académico), este intento resultó poco útil. Creo que en cierto modo, algo similar me paso al presentar el modelo de casos de uso. Me parace que la próxima, antes de explicar las distintas herramientas (casos de uso, user stories, etc) vamos a tener que hacer una introducción a los contextos metodologicos, en los cuales estas herramientas suelen utilizarse.

Andanzas por la UNTreF

Durante este cuatrimestre estoy colaborando con DiegoF en el dictado de la materia de análisis y diseño perteneciente a la carrera de Ingeniería en Computación de la Universidad Nacional de Tres de Febrero. La materia pertenece al cuarto cuatrimestre de la carrera y en cierto modo sería equivalente a Análisis de la Información en Fiuba. Si bien el nombre formal de la materia es «Análisis y diseño estructurado», el contenido es bastante más amplio; la visión de Diego es que al finalizar la materia los alumnos cuenten con varias herramientas y tengan el criterio de para poder elegir cual utilizar en cada caso. El programa de la materia incluye temas bastante variados que van desde el análisis estructurado de Yourdon, el diseño de productos, hasta User Stories y Atributos de calidad, pasando por Casos de uso, UML,  e implementación de paquetes. La materia se dicta en clases semanales de 4 horas, donde por lo general damos 2 horas de clase de exposición y luego actividades de aplicación, como ejercicios o incluso juegos.

Sinceramente me parece que la materia está muy bien pensada y es por eso que no lo dudé cuando Diego me hizo la propuesta. Estamos intentando grabar el audio de las clases de exposición, hasta ahora solo hemos grabado 2 clases y según me cuenta Diego han quedado muy bien.

A medida que vaya avanzado el cuatrimestre iré contando por aquí las expericiencias que vayamos recogiendo.

Esto es todo por ahora, cambio y fuera.