Primeros egresados de la tecnicatura en programación (UNQ)

El viernes próximo la Tecnicatura en Programación Informática de UNQ (carrera de la que soy docente) tendrá sus primeros dos egresados: Federico Sadaway y Nahuel Garbezza. Será a partir de las 18 horas cuando ambos alumnos defiendan sus correspondientes trabajos finales de carrera (formalmente llamados trabajo de inserción profesional).

El trabajo de Federico se titula «Formalización e implementación de un sistema de tipos para el lenguaje de programación Gobstones» personalmente no estoy muy familiarizado con Gobstones, solo se que se utiliza en las primeras materias de programación de la carrera.

Por su parte el trabajo de Nahuel se titula «Desarrollo dirigido por comportamientos en Pharo Smalltalk» y con este sí que estoy bastante familiarizado ya que soy uno de los jurados evaluadores.

Por el momento no voy a entrar en más detalles, solo les digo que si desarrollan en Pharo, el trabajo de Nahuel puede resultarles de gran interés. Luego de la defensa dedicaré unas lineas más extensas la experiencia de ser jurado y también al trabajo de Nahuel.

Architectural Kata @ Agiles BAires

Ayer tuve el gusto de participar de un architectural kata facilitado por @MartinSalias. La actividad se realizó en el contexto del encuentro mensual de la comunidad ágil de Buenos Aires y contó con más 20 asistentes.

Nos dividimos en grupos de 5 personas y usando hoja y papel cada grupo trabajó en resolver un desafio de arquitectura en un lapso de 45 minutos. Como mencionó uno de los participantes (creo que @ajlopez sino me equivoco) : «… pasamos más tiempo interpretando la consigna y debatiendo el alcance,  que en las cuestiones técnicas» y aunque parezca llamativo que creo este intercambio resultó muy enriquecedor.

Luego cada grupo cada grupo tuvo 5 minutos para exponer su solución y otros 5 minutos para responder preguntas.

Simple, concreto y enriquecedor.

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.