Informática en UNQ

Este cuatrimestre empecé a dar clases en la Tecnicatura en Programación Informática (TPI) de la Universidad Nacional de Quilmes. Esta tecnicatura es un carrera corta de pregrado, con una duración de 6 cuatrimestres. Si bien aun no estoy muy familiarizado, lo que he visto de la carrera me ha gustado. Tiene algunas materias que personalmente me resultaron llamativas y que de tener tiempo me gustaria cursar:

  • Estrategias de persistencia
  • Construcción de interfaces de usuario
  • Participación y gestión en proyectos de software libre
  • Introducción a la bioinformática
  • Introducción al desarrollo de videojuegos
En lo que a mi respecta, estoy dictando Programación Objetos 1, que en un punto toca los mismos temas que Algo3Fiuba, pero con una didáctica totalmente distinta, pero eso es tema de otro post.

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.

Presentación sobre Cloud Computing

El GrupoITI organizó unas jornadas sobre innovación en cuyo contexto voy a dar una breve presentación sobre Cloud Computing. Puede que no sea un tema muy innovador para algunos, pero la realidad es que es un tema que (hasta donde yo sé) en el ámbito local no ha tenido mayor difusión. Al mismo tiempo  he tenido la oportunidad de estar involucrado en varios proyectos en los últimos dos años y me parece un tema muy interesante; por eso que cuando recibí la invitación para participar del evento, propuse esta temática.

Para más información sobre el evento, puede consultar la agenda aquí.

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.

Agile Open Tandil 2011

Hace un par de horas que de Tandil luego de haber asistido a esta jugosa conferencia. Estimo que hubo unos 60 participantes los cuales se repartieron entre las más de 16 sesiones seleccionadas. Para mi sorpresa habia muy pocas personas que también habian de la edición anterior (2009), pero parece que en Rosario ocurrió lo mismo, curioso, ya que las ediciones anteriores tuvieron muy buenas repercusiones.

Siguiendo con curiosidades, me enteré que un porcentaje importante de los residentes de Tandil dedicados a sistemas, son originarios de Mar del Plata, lo cual según me explicarón algunos Marplatenses, se debe al hecho que en Mar del Plata no hay universidades públicas que dicten carreras de sistemas y al mismo tiempo resulta que el costo de estudiar en una universidad privada es comparable al costo de un mudarse a Tandil. Además de tandilenses y marplatenses me encontré en la conferencias con algunos colegas de Buenos Aires, puntualmente Martín Alaimo y Hernán Wilkinson.

Una de las sesiones más jugosas de las que participé, fue sobre la enseñanza de métodos ágiles en el ámbito académico. Esta sesión fue propuesta por una docente de ingeniería de software Mar Del Plata. Durante la sesión en la que participamos unas 20 personas, varios docentes expusieron sus experiencias. Algunos alumnos de la UNICEN mencionaron ellos ven una primera aproximación a métodos ágiles en la materia de ingeniería de software y luego tienen la posibilidad de cursar una materia optativa, exclusiva sobre métodos ágiles. En lo que a mi respecta, mencioné algunas de prácticas que usamos en Algo3fiuba y lo que hace JuanG en Administración y control de proyectos 2 y lo que hace CarlosF en Taller de Desarrollo de proyectos 2.

Luego del evento, que finalizó alrededor de las 17 hs., fuimos a tomar un café con MartínA, y los locales y JulianA y Carlos Walzer.

Finalmente, cerramos el dia con un excelente asado en las oficinas de Temperies con JulianA (alto asador), EstabanR, HernánW, MartínA y algunos otros miembros del eqeuipo de Temperies. Asi fue que entre carnes, vinos, guitarra y metegol, pasamos un excelente noche.

Otra vez a clases

El sábado pasado volvi a las aulas como alumno luego de más de 4 años. Resulta que comencé a cursar el Magister en Tecnología Informática Aplicada en Educación dictado por la Facultad de Informática de la Universidad Nacional de La Plata. Debo admitir que a pesar del entusiasmo que me despierta hacer este posgrado, tenia miedo de quedarme dormido en clase, ya que es algo que solia pasarme cuando cursaba materias teóricas en ingeniería. Pero por suerte la clase fue muy dinámica y no tuve ni la chance de pestañar.

Desconozco el número exacto de alumnos, pero calculo que éramos alrededor de 35, casi todos docentes y la gran mayoría con formación de grado en docencia (profesores, licenciados en educación, etc). Si no conté mal había unos 6 ingenieros y otros 4 o 5 licenciados/analistas de sistemas. La distribución demográfica -como era de esperar- con mayoría de Buenos Aires y alrededores, pero para mi sopresa con mucha gente del interior: Mar del Plata, Bahía Blanca, Tucumán, Formosa y hasta un compañero extranjero, de la hermana República Bolivariana de Venezuela.

El magister se compone de 5 seminarios obligatorios y un trabajo de tesis. La modalidad de cursada, al menos para este primer seminario, consiste en una clase mensual presencial y una seria de actividades semanales que incluyen lecturas y actividades online.

Bueno, ya pasó la primera clase y ahora tengo bocha de cosas por leer en el pŕoximo mes. Me voy a leer!

«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.

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.

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.

Antes de escribir hay que saber leer…

Por estos dias me propongo empezar a trabajar en un paper (más específicamente un experience report) y por ello mientras revisaba algunas anotaciones recordé algo que me enseño Stef durante mi estadía en el Inria: para poder escribir un paper primero hay que leer papers y hay que saber leerlos.

Hay 3 «niveles» de lectura de papers:

  • Nivel 1: leemos el título y el abstract, esto nos va a permitir determinar si el paper está dentro de nuestra área de trabajo y si existe la chance de que nos agregue valor. En caso de creer que puede llegar agregarnos valor, pasamos al siguiente nivel.
  • Nivel 2: leemos la introducción, la conclusión y los trabajos relacionados. Ya con esto puede que identifiquemos algo concreto de nuestra utilidad. Finalmente si luego de esta segunda lectura creemos que aún hay más info que pueda resultarnos de interés pasamos al siguiente y último nivel
  • Nivel 3: bueno, si llegamos hasta aquí solo nos queda por leer el desarrollo del trabajo (o sea el medio)

That’s all folks,

Espero les resulte de utilidad.