Algunos números sobre el curso de Ingeniería de Software de Berkeley

Ayer recibí el mail con el certificado de haber completado el curso y junto con ello, algunos datos interesantes.

  • Unos 20 mil estudiantes vieron al menos una de las clases.
  • Unos 10 mil estudiantes intentaron resulver al menos un questionario o uno de los ejericios.
  • Unos 3 mil quinientos estudiantes completaron el curso.

El curso se repetirá hacia mediados de mayo y una segunda parte  cubriendo Rails avanzado, trabajo en equipos, código légacy, performance y seguridad será ofrecida hacia finales de octubre.

Sobre los trabajos finales de carrera en FIUBA

Para recibirse de ingeniero en informática en la UBA es necesario realizar un trabajo final, el cual puede ser una tesis o un trabajo profesional.

La tesis es un trabajo de investigación de caracter individual, que se realiza bajo la dirección de un profesor y que es evaluado por tres jurados entendidos en el tema de la tesis. Esta tesis es una tesis de grado y como tal no require extender la frontera de conocimiento, o sea no es necesario un aporte de transcedental a la materia en cuestión. En algunos casos este tipo de tesis suele denominarse tesina. Un esquema típico de una tesis de este nivel en un área de ingeniería podría consistir en:

  1. Caraterizar un problema
  2. Analizar las soluciones actuales (estado del arte)
  3. Proponer una solución distinta (por ejemplo utilizando una tecnologia de reciente aparición)
  4. Analizar pros y contras del nuevo enfoque propuesto.

Una particularidad de las tesis en Fiuba es que requieren que se implemente algo, o sea: hay que codear.

El trabajo profesional es la realización de un «trabajo de la vida real».  El mismo se puede realizar de a dos alumnos y requiere la supervisión de un profesor el cual también se encarga de la evaluación del trabajo. En ocasiones los alumnos aprovechan el auspicio de sus empleadores para realizar su trabajo profesional en el contexto de su actividad laboral y de esa forma «matar dos pájaros de un tiro».

En ambos casos es necesario presentar un anteproyecto y a partir de la fecha de aprobación del mismo, los alumnos cuentan con un periodo de un año para presentación del trabajo/tesis. Generalmente este anteproyecto suele presentarse cuando el trabajo ya cuenta con cierto grado de avance. Tradicionalmente (y en la actualidad la cuestión sigue igual) la mayoría de los alumnos opta por la realización de trabajo profesional en lugar de tesis, tal vez sea porque a simple vista genera menos incertidumbre que la realización de una tesis. O sea, la tesis es un trabajo de investigación y la carrera no nos prepara para realizar trabajo de investigación. En general al llegar al final de la carrera todo alumno tiene experiencia investigando como utilizar una herramienta o como resolver un problema técnico, pero ello es bastante distinto al trabajo requerido para realizar una tesis.

En está página se listan las tesis realizadas por los ingenieros en informática de la UBA hasta el día de hoy.

En mi caso, yo elegí hacer una tesis, pues tuve la suerte de por esas casualidades de la vida cruzarme con un tema que me inquietó y que me motivó a realizar un trabajo de investigación que luego se convirtió en mi tema de tesis (en su momento escribí al respecto).

Continuará…

Maestria Tecnología Informática Aplicada en Educación: primer año completo

Hace un par de semanas me dieron la última nota de primer año. Todo bien, terminé primer año aprobando las correspondientes 3 materias. Me parece que es un buen momento para compartir algunas impresiones.

La organización general de la maestría desde el punto administrativo está bien. Por otro lado la organización de las materias me pareció dispar.

Las materias Educación a Distancia y Tecnología me parecieron bien organizadas, brindando un acompañamiento constante y cercano a los alumnos. Por otro lado la materia Psicologia Cognitiva fue bastante más «informal», la cátedra publicaba el contenido a estudiar y habilitaba los foros para consulta, dejando que el alumno se auto organice para el seguimiento de la materia.

Desde el punto de vista del contenido, Educación a Distancia fue sin duda la mejor materia a mi parecer, no solo por el contenido en si mismo, sino también por la forma en que el equipo docente realizaba la mediación. No puedo de dejar de destacar en esta materia el desempeño de la profesora Alejandra Zangara cuyas clases presenciales fueron impecables y su feedback fue muy preciso y orientador.

El viernes próximo comienzo a cursar el segundo año, el sábado les cuento.

Sobre el curso de Ingeniería de Software de Berkeley

Hace un tiempo comenté que estaba tomando un curso online de la Universidad de Berkeley ofrecido en la plataforma online de la Universidad de Standford. Ayer rendí el último examen y lo completé.

El curso me gustó, aprendí algunas cosas y reforcé otras, pero debo decir que esperaba algo distinto. El título del curso era «Software Engineering for SaaS» , pero de SaaS se vió muy poco. Respecto a esto algunos alumnos opinaban que el hecho de usar Ruby/Rails ya cumplia con el contenido de SaaS. Yo personalmente no comparto, creo que Ruby/Rails es un solo un framework, muy productivo sin duda, pero que implementa patrones que han estado en uso por varios años como MVC y Active Record y que pueden o no usarse para hacer aplicaciones SaaS. Al mismo tiempo, temas como escalabilidad, que resultan muy relevantes en aplicaciones SaaS, apenas fueron mencionados.

Más allá de los contenidos, me gustó mucho la dinámica y tengo ganas de hacer algo similar ofreciendo parte del contenido de la materia que estoy dictando en UNQ.

Resultados del relevamiento sobre POO

Hacé un tiempo publiqué una encuesta para relevar los lenguajes utilizados para la enseñanza de la POO. Esta encuesta la distribuí entre conocidos y también en algunas listas de correo en las que participo. En total obtuve 143 respuestas provenientes de 6 paises distintos de habla hispana (Argentina, Uruguay, Peru, España, Republica Dominicana y Guatemala).

Básicamente la encuenta preguntaba sobre el lenguaje utilizado en la primer materia de objetos, aquella en la que el alumno se cruza por primera vez con los conceptos de polimorfismo y herencia. También se preguntaba sobre la materia/institución y la época, pues entiendo que a lo largo del tiempo ha habido una variación.

El análsis de los resultados me ha llevado un tiempo, pues no se trata de contar resultados individuales, sino que es necesario agruparlas por institución y época.

Los resultados han arrojado que en los casos anteriores a 1990 los leguajes utilizados han sido Object Pascal (Delphi) y Smalltalk.

Durante los años 90 los lenguajes predominantes son C++ y Smalltalk

Ya  a partir del año 2000, comienza a descatarse Java en desmedro de C++ y Smalltalk.

Más allá de estos números, se confirma mi hiṕotesis, la gran mayoria de las intituciones utilizan UN solo lenguaje para la enseñananza del Paradigma OO en la primer materia dedicada al tema.

Con estos resultados puedo seguir trabajando en mi paper sin cambiar el enfoque ya que mi teoría se confirma. Cuando tenga el primer draft lo publicaré en este mismo medio.

Gracias a todos los participaron de la encuesta.

¡Que buen libro (pero no entendí el final)!

Puede que alguna vez me haya pasado con una pelicula, pero definitivamente nunca me habia pasado con un libro.

El libro en cuestión se llama Acerca de Roederer y su autor es Guillermo Martinez, un matemático argentino también autor de la excelente novela Crímenes imperceptibles (llevada al cine por Alex de la Iglesia bajo el título Los crímines de Oxford).

Hacia ya más de un año que me habian regalado este libro y yo ni siquiera lo había puesto en mi lista de prioridades de lectura, pero justo se dió que terminé de leer Hechicero y no tenia otro libro de dimensiones portables para seguir leyendo, asi que lo agarré. Las primeras 20 páginas no me resultaron atrapantes (el libro tiene en total 117 páginas), pero de a poco me fue atrapando y cuando habia llegado ese punto de adicción que suelen desperta los buenos libros, ¡chan! se acabó. Era obvio que el final estaba cerca pues faltaban pocas páginas, pero dado el desarrollo de la historia, yo no divisa un final. Tal vez sea por eso que el final me desconcertó. Me pareció un final muy abierto, o tal vez sea que me faltó atar algunos cabos para verdaderamente entenderlo. En fin, más allá de este curioso detalle el libro me gustó.

Aventura gráfica made in Argentina (ex-FIUBAs)

La semana pasada me llego un mail de compañero de Francisco Saenz contandome del lanzamiento de Reversion, una aventura gráfica desarrollada por un conjunto de alumnos de Fiuba: Francisco (mi compañero), Fernando y Facundo.

Estos tres muchachos se conocieron en su época de estudiantes en Fiuba, luego de un par de años fundaron la empresa 3F Soluciones en el contexto de la cual desarrollaron este juego. El año pasado, Francisco y Fernando estuvieron de invitados en mi materia en UNQ donde contaron sobre el surgimiento de la empresa, su forma de trabajo y el proceso de desarrollo de este juego. Todos quedamos facinados con la presentación y muy expectantes al lanzamiento del juego que se llamaria Reversion.

Bien, finalmente el momento llegó, desde hace unos está disponible para descarga el primer capítulo de Reversion. Tal vez lo más llamativo del juego es que está ambientado en Argentina y pueden reconocerse en las distintas pantallas escenas inconfundibles de pasajes de Buenos Aires.

Dado que los juegos no son mi fuerte, les dejo el link al anuncio escrito por los creadores y para quienes les interes el backstage, les recomiendo ver el blog que escribe el equipo de desarrollo.

Mis felicitaciones al equipo de 3F y ojala les vaya muy bien con esta iniciativa, chau, ¡ me voy a jugar!

Primer cuatrimestre 2012: ¡largamos!

Asi es, largamos y casualmente en esta ocasión el cuatrimestre comenzó al mismo tiempo en FIUBA y en UNQ. Curiosamente la mi mátricula de alumnos se invirtió respecto del cuatrimestre pasado: mientras que en Ing. de Software (UNQ) tengo menos alumnos (pasé de 15 a 7) en Algo3 (FIUBA) tenemos alrededor de 50 alumnos (casi el doble que el cuatrimestre anterior).

El comienzo fue bastante movido, de hecho las clases comenzaron la semana pasada y recien ahora me pude hacer un tiempo para escribir un par de líneas. Algo interesante es que en ambas materias noto una mejora respecto del cuatrimestre anterior:

  • En Algo3, a pesar de tener más alumnos, las cantidad de consultas sobre el TP0 se redujeron notablemente. Lo cual a mi entender tiene que ver con 2 cuestiones: el enunciado del TP fue menos ambiguo y al mismo tiempo las explicaciones en clase previas a la entrega del TP0 fueron lo muy claras.
  • En Ing. de software, me asignaron un aula ¡excelente!: pizarra blanca enorme, mesas altas con ruenas y banquetas. Por otro lado tengo un alumno del  cuatrimestre pasado que me va a estar dando una mano como colaborador, lo cual espero nos permita tener un mejor seguimiento de los alumnos.

Si bien las materias tratan sobre distintos tópicos, en ambos casos estamos poniendo un importante énfasis en las pruebas: TDD, BDD, etc.

Otro punto común es que en ambos casos vamos a estar utilizando como herramienta de apoyo la plataforma Moodle.

¿Alguna vez te preguntaste como está hecho Google Docs?

Yo me lo he preguntado en varias ocasiones y particularmente una de las cosas que más me cautiva en la edición en simultáneo en tiempo real. A ciencia cierta desconozco como lo hace Google, pero durante las últimas semanas un par de compañeros de Southworks liderados por MatiasW estan trabajando en una herramienta que también cuenta con esta capacidad.

Se trata de MarkdownR, un editor colaborativo en tiempo real de markdown desarrollado con share.js. En verdad vale la pena tomarse unos minutos para darle una mirada, pueden accederlo aquí: http://markdownr.cloudapp.net/.

Y para los curiosos, el código está disponible en GitHub: https://github.com/southworksinc/markdownR/.