Resultados del cuatrimestre que cambiamos a TypeScript (untref-stats-2025)

A partir de los cambios introducidos por el nuevo plan de estudios en UNTreF, realizamos varios cambios en nuestro curso de Ingeniería de Software. Unos de los más relevantes fue el cambio de Ruby a TypeScript, algo que ya mencioné en un post anterior.

Habiendo terminado el cuatrimestre debo decir que la decisión de cambio a TypeScript me parece que fue acertada, pero a pesar de eso los resultados del cuatrimestre me generan cierta incomodidad. Comenzamos el cuatrimestre con +40 alumnos y llegamos al trabajo final (semana 11) con 20, una situación sin precedentes desde que el curso está a mi cargo. En términos generales la materia está estructurada en 2 partes. En la primera los alumnos trabajan individualmente estudiando y poniendo en práctica ciertos temas que evaluamos con ejercicios de programación. Para aprobar esta primera parte y poder «pasar» a la segunda, los alumnos deben promediar al menos 6. De los +40 alumnos que comenzaron la materia apenas 20 lograron completar la primera parte con promedio 6 (o más). En la segunda parte los alumnos trabajan en equipo en un «simulacro de proyecto real», desarrollando una WebAPI REST y aplicando de forma integral todo lo visto en la primera parte de la materia.

Al analizar el desempeño de los alumnos desaprobados nos encontramos ciertas situaciones recurrentes que podríamos resumir como: falta de atención. Dos ejemplos concretos:

  • En la consigna del ejercicio indicamos el nombre de los archivos a entregar. Luego nos encontramos con archivos con nombres distintos a los indicados.
  • Acompañamos la consigna con un conjunto de casos de prueba, esperando que los alumnos se aseguren de que sus soluciones pasen dichos casos antes de realizar la entrega. Luego nos encontramos con soluciones que no pasan los casos de prueba.

Por otro lado, en la segunda parte, el desarrollo del trabajo final requirió de un esfuerzo/dedicación de los alumnos, mucho mayor a la esperada. No fue el caso de todos los equipos pero sí de un porcentaje importante de ellos. Creemos que esto se debe en gran medida a la falta de atención pero también al hecho de los que alumnos llegan bastante «verdes», algo que definitivamente tendremos revisar para el próximo cuatrimestre.

Volviendo al tema de TypeScript, nos sirvió para lograr nuestro primer objetivo: facilitar a los alumnos el setup de sus ambientes y facilitar la explicación/entendimiento de ciertas cuestiones a partir del uso de un lenguaje estáticamente tipado. Sin embargo nos encontramos con algunas «chanchadas» que permite TypeScript, a pesar de haber advertido a los alumnos, como por ejemplo el uso de Any en los objetos de negocio. Aún no lo hemos confirmado con el equipo pero creo que TypeScript es una de las cosas que mantendremos.

Cierro con algunos números concretos surgidos de nuestra encuesta:

  • Evaluación general de la materia (promedio): 8,4 / 10
  • Dinámica de clases : 4,4 / 5
  • Materiales de estudio: 4,4 / 5
  • Claridad de los docentes: 4,5 / 5
  • El 90% de los alumnos estuvieron de acuerdo con la cantidad de clases presenciales (el 10% restante hubiera preferido más presencialidad)
  • Cantidad de respuestas: 18

Ingeniería de Software: de Ruby a TypeScript

Desde hace varios años en mi curso de Ingeniería de Software @ UNTreF venimos usando Ruby como lenguaje de programación. Una elección con la que estábamos muy conformes. Pero el cambio de plan de estudio del año pasado, cambió radicalmente el perfil de nuestros alumnos y ello nos llevó a replantear varias cuestiones de la forma en que dictamos la materia. Entre ellas el lenguaje de programación.

Dado el perfil de los alumnos pensamos que trabajar con un lenguaje de tipado estático podía resultar más conveniente para explicar algunas cuestiones (cuestiones que previamente no teníamos que explicar porque las estudiaban en materias anteriores). Inicialmente consideramos C# pero luego de algunas pruebas decidimos descartarlo. Finalmente la semana pasada decidimos ir con TypeScript. Yo vengo de armar un programa de entrenamiento para pasantes en uno de mis clientes y considero que TypeScript dió muy buen resultado. Mis colegas estuvieron de acuerdo así que ahí vamos.

Complementando TypeScript el stack de desarrollo que vamos usar está conformado por VScode + yarn + eslint + jest + cucumber + express (nada muy novedoso).

En un par de semanas les cuento que tal nos va.

Inteligencia Artificial en la Enseñanza de la Programación: nuestro estudio formal

Hasta el momento evité escribir sobre cuestiones de Inteligencia Artificial en parte porque me pareció que había demasiada gente hablando del tema, algunos incluso hablando con muchas imprecisiones (por no decir «tirando fruta») pero también porque yo mismo no quería tirar fruta. A pesar de estar trabajando profesionalmente en iniciativas de IA desde 2023 sentí que mi conocimiento era muy superficial.

Pero ya desde un tiempo la IA comenzó a meterse en mis cursos y eso nos obligó a tomar el tema. Es por eso que a comienzos de este año junto a Diego Marcet y Gonza Cozzi (miembros de mi equipo docente en UNTreF) nos pusimos a estudiar formalmente el tema. En concreto comenzamos estudiando el uso de la IA en la enseñanza de la programación. Hicimos una revisión de papers y encuestamos a docentes de programación. Esta iniciativa quedó plasmada en un artículo que enviamos al Simposio Argentino de Educación en Informática y que estaremos presentando en Agosto en el contexto de las Jornadas Argentinas de Informática.

Algunos de los hallazgos que hicimos fueron:

  • La mayoría de los docentes (~70 %) ya utiliza herramientas basadas en IA en sus tareas docentes.
  • Al mismo tiempo (más del 70 %), la gran mayoría cree que la incorporación de IA en sus cursos requiere de un cambio significativo en la forma en que dictan sus cursos.
  • Más del 90% de los encuestados reportaron que sus alumnos ya utilizan herramientas basadas en IA

Más allá de todo lo anterior, y que en un punto era esperable, lo que más nos llamó la atención fue la diferencia de opinión cuando preguntamos si consideraban positiva o negativa la irrupción de IA en la educación, el siguiente histograma muestra la consolidación de las respuestas.

Este artículo representa el primer paso de nuestra iniciativa de estudio del uso de la IA en la enseñanza. Nuestro siguiente paso es trabajar con practicantes, con lo cual si hay algún desarrollador leyendo esto y utilizando IA (co-pilot, cursor, etc) y le interesa participar de un estudio, no deje de contactarme.

Ingeniería en Computación: una egresada más

La semana pasada tuve el honor de ser jurado del trabajo final de carrera de Paola Rodrigues quien obtuvo su título de Ingeniera en Computación por la UNTreF. Si bien en las carreras de sistemas hay pocas mujeres, en Ingeniería en Computación suele haber aún menos. De hecho Paola es la segunda egresada mujer de la carrera.

El trabajo de Paola, titulado Análisis, visibilidad de tráfico y seguridad para usuarios finales en redes hogareñas, incluyó el desarrollo de una solución de bajo costo para el control de tráfico en redes hogareñas. El trabajo me resultó muy interesante, una combinación de innovación, programación, hardware y software. ¡Mi felicitaciones para nueva egresada!

Nuevos cursos de Ingeniería de Software

A partir del cambio de plan de estudios de la carrera de Ingeniería en Computación de UNTreF, este cuatrimestre tuvimos que cambiar nuestro curso de Ingeniería de Software. Previamente la materia Ingeniería de Software se encontraba al final de la carrera (último año) y ahora, en el nuevo plan, se encuentra en tercer año.

Este cambio impactó en varias cuestiones:

  1. Los conocimientos previos con los que llegan los alumnos. Previamente los alumnos llevaban con unas 35 materias aprobadas, mientras que ahora llegan con alrededor de 20.
  2. El nivel de maduración/experiencia de los alumnos. En general los alumnos de último año ya se encuentran trabajando en el rubro y eso les da una determinada experiencia de programación, resolución de problemas, etc. Los alumnos de tercer año, en cambio, muchos aún no trabajan en el rubro y su experiencia en programación es mucho más acotada.
  3. La cantidad de alumnos, hay muchos más alumnos en tercer año que en quinto. Pasamos de tener unos 8-10 alumnos a tener alrededor de 25.

Al mismo tiempo, si bien el nombre de la materia se mantiene y los contenidos no son tan distintos, el nivel de profundidad cambió radicalmente. Vimos de forma mucho más superficial ciertas cuestiones de gestión, e incluso sacamos algunos temas de arquitectura, mientras que nos detuvimos mucho más en temas de programación y diseño a nivel objetos. Cuando comenzamos a planificar la materia pensamos en varios cambios, pero finalmente decidimos no hacer demasiado cambios «up-front» porque desconocíamos el perfil de los «nuevos alumnos», así que decidimos seguir un enfoque más «adaptativo» e ir viendo sobre la marcha.

Comenzamos el curso con 33 alumnos y lo terminamos con 24, una caída muy importante comparado con nuestros números históricos (en los últimos dos años todos los alumnos que comenzaron la materia, la completaron). Sin embargo creemos que no estuve tan mal, sobre todo porque en un primer momento pensamos que llegaríamos al final con menos de 10 alumnos.

Una consecuencia del cambio de plan de estudio es que muchos de los contenidos que sacamos de la materia, los estaremos dando en una nueva materia optativa, «Ingeniería de Software Avanzada» que comenzaremos a dictar el año próximo. En lo personal nunca dicté una materia optativa, pero es algo que me viene dando vueltas en la cabeza hace un buen rato. Me gusta la idea de que la gente no venga «obligada». Al mismo tiempo, creo que al ser una materia optativa, se presta un poco más a la experimentación.

Hoy, habiendo terminado la materia, estamos muy conformes con el resultado y lo cual es confirmado por el feedback de los alumnos. La evaluación general de la materia, resultado de una encuesta anónima, nos arrojó en promedio 9/10, con una dispersión mínima (fueron todos 8, 9 y 10).

Cierro con algunos comentarios de la encuesta:

«Gran materia, aprendí un montón. Vine de entrada con esa expectativa, ya que compañeros que ya la había cursado me dijeron que era de las mejores de la carrera.»

«Aprendí como es la dinámica de trabajar desarrollando, algo que no se aprende en ninguna materia. Me parece muy valiosa la enseñanza desde cero y terminar aplicando todo junto en un proyecto. Estoy muy agradecido»

«Buena dinámica de clases, menos aburridas que una clase normal.»

(esto último comentario que encantó «menos aburridas que una clase normal» 😉 )

Diplomatura en Ingeniería de Software Continua: charla informativa 2024-2

Ya está abierta la inscripción para la Diplomatura en Ingeniería de Software Continua que dictamos en UNtreF junto a Diego Fontdevila, Carlos Fontela, Andrés Diaz Pace, Diego Marcet y Federico Casuscelli.

En estos días estamos completando la primera cohorte de graduados (nos falta cerrar notas de una de las materias) pero al margen de ese detalle ya hemos tenido muy buen feedback de los estudiantes y estamos trabajando en algunas mejoras de cara a la nueva cohorte que comenzará en septiembre.

Como de costumbre vamos a hacer una charla informativa para contar sobre los contenidos, forma de cursada, etc y atender consultas de los potenciales alumnos. Dicha charla será este miércoles 31 de Julio a las 9:30 hs hora argentina (aclaro que es hora argentina por que al ser una carrera 100% online ya nos ha pasado de tener estudiantes de diversos paises).

Los interesados en participar de la charla informativa pueden completar este formulario y les enviaremos el link de acceso.

Ingeniería de Software Continua: Fin de primer cuatrimeste & Inscripción 2024

La semana pasada completamos el primer cuatrimestre de la Diplomatura en Ingeniería de Software Continua. Dictamos dos materias: «Diseño y Evolución de Arquitecturas de Software» e «Ingeniería de Software Moderna» las cuales tuvieron 12 alumnos, un muy buen número para la dinámica de clases que diseñamos. El feedback de los participantes fue muy positivo y desde el equipo docente también quedamos muy contentos.

Para ser preciso debo decir que no yo dicté ninguna materia, sino que cuando digo dictamos lo hago desde mi rol de coordinador de la carrera.

El dictado del segundo cuatrimestre comenzará en Abril 2024 con otras dos materias: «Operación y Gestión de Servicios de Software con DevOps» y «Continuous Delivery«, esta última está a mi cargo. Dada la flexibilidad con la armamos el plan de estudio, los interesados en hacer la carrera pueden sumarse en este segundo cuatrimestre y luego completar el diploma en la segunda mitad de 2024. Más aún, si alguien no quiere hacer la carrera completa sino alguna materia puntual, también es posible. Para despejar estas dudas y cualquier otra que los potenciales interesados puedan tener, este miércoles 13 a las 12:00 horas (hora Argentina, gmt-3) estaremos dando una charla informativa (online). Los interesados en participar pueden completar este formulario para que les pasemos los datos de conexión.

Cierre de cuatrimestre @ UNTreF

La semana pasada completamos un nuevo curso de la materia Ingeniería de Software en UNTreF. Tuvimos 6 alumnos, todos completaron la cursada y 5 de ellos promocionaron la materia.

Debido al cambio de plan de estudio, este cuatrimestre fue el último en la modalidad actual pero a pesar de eso también hicimos algunas innovaciones en esta edición. Resulta que a partir del próximo año la materia se dicta en el contexto del nuevo plan de estudio en el cual es un materia de tercer año y no de quinto año como fue hasta el momento.

En lo personal creo que fue uno de los mejores cuatrimestres que tuvimos y creo que en gran medida fue por el grupo de alumnos. A diferencia de otros cuatrimestres creo que se generó una muy buena onda tanto en la relación entre los alumnos como también en la relación docente-alumno.

Como de costumbre trabajamos sobre el JobVacancy pero agregamos una innovación creando una capa de presentación complementaria representada por un Bot de Telegram. La introducción de este componente trajo un conjunto nuevo de complejidades que nos permitieron aplicar algunas prácticas más allá de las habituales (logs centralizados, monitoreo, gestión multipipeline, etc.)

En la retrospectiva de cierre los alumnos destacaron 3 cuestiones:

  1. Didáctica de la materia 🙂
  2. Contenidos de la materia 🙂
  3. Alta carga de trabajo (y agrego yo, carga continua de trabajo) 😐

Impresiones a mitad de cuatrimestre

Ya estamos promediando el cuatrimestre y tanto en la materia de fiuba como en la untref ya hicimos la retro de mitad de curso. Tengo la sensación que en ambos casos las materias vienen fluyendo muy bien. Digo esto en base a dos cuestiones: lo hablado en las retrospectivas y también el desempeño de los alumnos.

Un factor fundamental en esto creo que es el tamaño del curso. En ambos casos estamos hablando de cursos chicos lo cual nos permite hacer un seguimiento bastante personalizado de los alumnos: feedback constante y detallado.

Curiosamente, a diferencia de cuatrimestres anteriores, no hubo en las retrospectivas mención a la carga de trabajo ni a las tecnologías utilizadas. Hasta ahora era típico que los alumnos hicieran mención a utilizar otro stack de tecnologías y alguna «queja» a la carga de trabajo. Pero este cuatrimestre no ocurrió. Tal vez porque son dos cuestiones que explicamos bien explícitamente al comienzo de cada curso.

En el caso de fiuba hicimos 3 actividades en la retrospectiva. La primera un chequeo de «realidad vs. expectativas». Les pedimos a los alumnos que indicaran si lo que efectivamente encontraron en la materia era mejor, igual o peor de lo que esperaban inicialmente.

Luego, en la segunda actividad pedimos feedback sobre distintos aspectos de la materia.

Finalmente, en la tercera actividad, hicimos un clásico keep-fix-try donde obtuvimos feedback más específico.

Diplomatura en Ingeniería de Software Continua, largamos

El miércoles pasado comenzamos el dictado de la Diplomatura en Ingeniería de Software Continua en la Universidad Nacional de Tres de Febrero. Un importante paso de una idea que para que comenzó a gestarse hace ya varios años.

Esta primera cohorte tiene 13 participantes, un muy buen número para la propuesta didáctica queremos implementar en la toda la carrera. Entre los participantes tenemos un extranjero residente en Costa Rica y gente de diversos lugares de Argentina: La Plata, Bariloche, Mendoza, Córdoba y San Martín de los Andes entre otros.

En este primer cuatrimestre comenzamos con el dictado de dos materias: Ingeniería de Software Moderna (a cargo de Carlos Fontela) y Diseño y Evolución de Arquitecturas de Software (a cargo de Andrés Pace y Diego Fontdevila).

Dado que las 4 materias del diploma están armadas de forma autocontenida y no tiene correlatividades entre ellas, en marzo del año próximo volveremos abrir la inscripción para quienes quieran empezar a cursar las otras dos materias que se comenzarán a dictar en abril: Entrega Continua (a mi cargo) y Operación y Gestión de Servicios de Software con DevOps (a cargo de Fede Casuscelli).

Quienes quieran saber más sobre esta propuesta educativa aquí hay un documento formal con detalles de objetivos, contenidos y bibliografía.