Categoría: academia

Métodos de clase

Conceptualmente los métodos de clase son métodos que tienen la particularidad de pertenecer a la clase y no a las instancias de la clase. Por esto es que para invocar a un método de clase no es necesario crear una instancia de la clase que contiene el método.

En aquellos lenguajes cuya sintaxis deriva de C, los métodos de clase se identifican con la palabra clave static y de ahí que en ocasiones se los llame métodos estáticos. Conceptualmente desde la POO creo que este nombre no es correcto pues mezcla una cuestión conceptual con un detalle de implementación de algunos lenguajes particulares.

public static doFoo() {
..
}

En Ruby, los métodos de clase de clase, se los identifica en su definición con el prefijo self.

def self.doFoo
...
end

El Smalltalk (pharo) los métodos de clase son definidos en un compartimento particular.

class_methods

Algunos números de la educación en computación en Argentina

Recientemente mi directora de tesis – Rosita W – publicó un artículo en la revista ACM Inroads, el mismo se titula The Evolution of Computer Education in Latin America: The case of Argentina y me gustó tanto que tengo la intención de incluirlo como material de estudio en mi materia de Ingeniería de Software.

Como su título lo indica, el artículo cuenta la evolución de la educación en computación y provee muchísima información interesante como ser:

  • En 1955 sólo había en Argentina 7 universidades, todas ellas públicas: Córdoba, Buenos Aires, Tucumán, La Plata, Cuyo, Litoral y UTN.
  • Para el año 2000, la situación había cambiado radicalmente: había más de 100 universidades, públicas y privadas
  • En 2011 había 139 instituciones de educación superior con ofertas de estudio en el  área de informática.
  • Existen en la actualidad nueve doctorados en Argentina en el área de computación e informática
  • Se estima que en la actualidad hay unos 120 doctores en computación / informática
  • Cada año, hay unos 20.000 ingresantes en las carreras de computación e informática de los cuales se gradúa menos del 20%.

Más allá de estos números, el artículo hace un relato histórico que cubre desde las primeras iniciativas a mitad del siglo XX hasta la situación actual incluyendo menciones a los procesos militares, la ESLAI y la CONEAU.

En mi opinión, es una lectura obligada para todos los profesionales y estudiantes informáticos de argentina.

MiriadaX: cursos online gratuitos en castellano

Reciente descubrí MiriadaX, una plataforma al estilo Coursera, pero que agrupa Universidad de España. Cuenta con una gran cantidad de cursos de diversos temas que varian desde Economia y Finanzas hasta Turismo y Salud pasando por Informática e Innovación.

Para hacer una prueba de esta plataforma y aprovechando que ya estoy por terminar el curso de Android decidí anotarme en un curso de agilidad llamado Agilidad y Lean. Gestionando los proyectos y negocios del s. XXI El mismo tiene una duración de 1 mes y una carga estimada de trabajo de 5o horas.

En un mes les cuento que tal el curso y la plataforma.

Algunos cambios en Algo3 para el 2014

Un nuevo cuatrimestre está por comenzar y junto con el vienen algunos cambios.

En primer lugar tenemos algunos cambios de horario: la teórica será dictada los lunes por la tarde y al mismo tiempo la práctica de los miércoles también se dictará por la tarde (en ambos casos el horario es de 16 a 19 hs). Las otras dos prácticas siguen iguales.

También tenemos cambios en los equipos docentes de las prácticas: Gabi Falcone pasa a la práctica de los jueves a la noche, mientras que DiegoM y yo estaremos en la práctica de los miércoles.

Finalmente tenemos algunos cambios en lo que respecta a la dinámica de las clases: vamos a experimentar más fuertemente con algunas técnicas de lo que se denomina el paradigma de educación centrada en el alumno.

ASSE 2014: Simposio Argentino de Ingeniería de Software

Este tradicional simposio que forma parte de las Jornadas Argentinas de Informática organizadas por SADIO se llevará a cabo este año en las instalaciones de la Universidad de Palermo, los días 4 y 5 de Septiembre.

Los chairs de esta edición del simposio somos Luciana Roldán y quien escribe. Luciana es investigadora del CONICET  y docente de UTN Santa Fe y en lo que a mi respecta, fui invitado por ser miembro de la División Ágiles de SADIO.

Esta semana abrimos la convocatoria para la presentación de trabajos y estamos trabajando activamente en su difusión. Pueden encontrar información más detallada en la página del simposio.

Proyecto T: tecnología definida

Luego de investigar y hacer algunas pruebas de concepto, los alumnos eligieron construir la aplicación con Grails y AngularJS, una combinación con la personalmente no tengo experiencia pero que me gusta.

Respecto a la infraestructura, el repositorio será Git (github).

Respecto del build server y el ambiente de tests, yo tenía la ilusión de usar el servicio de CloudBees, pero los alumnos prefirieron ir con Travis y Heroku.

Apostando a la ingeniería con estímulos de $ 25.000

La Facultad de Ingeniería de la UBA, tiene en curso un programa de estímulo a la graduación de estudiantes. Dicho programa está apuntado a aquellos estudiantes que se encuentren próximos al final de su carrera y que por una u otra razón hayan interrumpido sus estudios. El estímulo consiste en el pago de un monto de $25.000 para aquellos que efectivamente se gradúen.

Pueden encontrar más información en la página de la facultad.

Desarrollo Android en MacOS Maverick

Hace unos días comencé a hacer un curso de Coursera sobre programación de aplicaciones Android. A la hora de hacer las tareas de programación me encontré con algunas dificultades técnicas en mi ambiente de desarrollo cuya solución comparto aquí.

Para desarrollar aplicaciones Android es necesario el uso de un kit de desarrollo (Android SDK) que incluye entre otras cosas el ADT: Android Development Tools, básicamente un Eclipse personalizado.

La primer dificultad que encontré fue que el material del curso está basado en el SDK 4.3 de Android mientras que el SDK actual es el 4.4. Esta diferencia de versiones generaba algunos warnings en código del curso. Para evitar posibles futuros inconvenientes debidos a la diferencia de versión, decidí instalar el SDK 4.3. Esto lo hice utilizando el SDK Manager que es parte de ADT.

adt

La segunda dificultad que encontré fue la velocidad del emulador. Un desastre, por un lado el emulador tardaba mucho en iniciar y luego, una vez iniciado, cada interacción llevaba más de 10 segundos. Investigué un poco y encontré que debía instalar el paquete Intel Hardware Accelerated Execution Manager. Para mi sorpresa, una vez instalado este paquete, la situación  emperó, cada vez que iniciaba el emulador de Android, mi maquina quedaba totalmente colgada obligándome a reiniciarla. Luego de probar algunas variantes de configuración, me puse a googlear y descubrí que otras personas ya habían experimentado mi misma situación. Al parecer hay un problema conocido entre MacOS Maverick y el paquete Intel Hardware Accelerated Execution Manager 1.0.6 (R3) que yo había instalado. La solución consistió en instalar este hotfix del paquete de Intel. Luego de instalar esto, el desempeño del emulador mejoró notablemente.

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

Cierre de cuatrimestre en UNQ, quinta promoción

La semana pasada terminó el cuatrimestre en UNQ y con ello mi quinto cuatrimestre dictando Elementos de Ingeniería de software.

Este cuatrimestre tuvo algunas particularidades entre las que destaco 2:

Respecto del cuatrimestre anterior la materia no tuvo cambios significativos, pues si bien se sumó Pablo, ya nos conocíamos desde hacía años y compartimos la misma filosofía en lo que respecta a los temas de la materia.

Un cambio que sí me pareció muy importante fue el contar con un espacio en el campus virtual de la universidad. Esto nos sirvió para compartir el contenido y también para realizar algunas actividades complementarias a las clases presenciales.

Otro cambio positivo fue el uso de videos para explicar algunas cuestiones técnicas que no son el foco de la materia. Así logramos utilizar mejor el tiempo de clase.

Entre los puntos que surgieron en la retrospectiva de la materia se destacaron:

  • Es muy distinto cuando damos feedback por mail a cuando lo damos en persona => reemplazar el feedback via mail por feedback en video
  • Algunas de las clases con formato “clase magistral” resultaron poco entretenidas => intentar cambiarlas por clases con dinámicas o al estilo “from the back”
  • En algunas clases comenzamos haciendo un ejercicio de relajación lo cual gustó mucho => hacerlo más seguido
  • Enviar tareas lo más temprano posible
  • Mantener los videos sobre temas técnicos
  • Mantener las clases con dinámicas
  • Mantener el uso de la máquina virtual para simplificar la configuración de ambiente y herramientas
  • Mantener las visitas de gente de la industria.

Para cerrar comparto algunos números frios:

  • Alumnos anotados: 9
  • Alumnos aprobados: 8 (el alumno que abandonó lo hizo la tercer semana de clase debido a que sufrió un accidente que impidió asistir a clase por un período prolongado)
  • Nota final promedio: 8,5
  • Total de clases: 31
  • Visita de profesionales de  la industria: 2, DiegoF y Fer Di Bartolo (¡gracias muchachos!)

eis-5-cohorte