13 diciembre 2007

Smalltalks 2007

Ayer miércoles finalizaron las charlas de Smalltalks 2007.

Solo estuve presente en algunas charlas sobre Seaside y en el workshop de GLASS, y pese al calor de las aulas del Pabellón de la FCEyN, Smalltalks 2007 fue una sorpresa agradable.

 

Los organizadores hicieron un laburo bárbaro y eso se notó. (Felicitaciones!!)

 

Como comenté es un post anterior, hice el logo para estas conferencias -una vil copia del globo de la Byte con el obelisco de fondo ;)

El logo esta publicado bajo licencia de Creative Commons y lo pueden bajar de este link.

Conclusiones que saco de las charlas:

  • Hay gente haciendo cosas muy cool en Smalltalk: editores con refactorings para Traits o herramientas que combinan Smalltalk y Flex usando WebServices.
  • Seaside es excelente y espero que con el tiempo vayan surgiendo proveedores de hosting que lo soporten. Quizás a medida que se popularice la utilización de virtualización el hosting deje de ser un problema.
  • Percibo una actitud entre los Smalltalkers (no conozco el ambiente Ruby o Python) que no es muy copada: todo lo que esta en Smalltalk es bueno y el resto son estúpidos. Por ejemplo: En los comentarios finales de la charla sobre combinar Flex y Smalltalk surgió la pregunta lógica de "Por que tuviste que hacer la interfaz en Flex y no en St?", a lo que siguió la respuesta sensata de: "Flex me da buenas herramientas para UI y St para modelar el dominio, si hubiese tenido buenas herramientas de UI en St lo hubiese hecho en St". Acto seguido los comentarios en el publico fueron: "hay alguien trabajando en una librería de Cairo para VW" y "probablemente Sophie este en la próxima versión de Squeak".

    Esos comentarios si bien son muy positivos y entusiastas sobre Smalltalk, esconden mucho de miopía: Cairo es un API para dibujos 2d (como GDI+ o Java2D), Sophie es para crear libros multimedia y esta en una etapa alpha (basta bajarlo y probarlo un poco para darse cuenta) asi que actualmente estas no son ni remotamente alternativas a Flex.

    Sería bueno tener un buen framework/editor de UI en St, pero pensar que eso se hace en dos minutos es tonto, pese a que uno critique a Java o .Net como lenguajes, muchos de los frameworks y herramientas que tienen estas plataformas son muy difíciles de hacer.

    Asi que por que no emplear una actitud más post moderna y combinar St con otras herramientas? De esa manera uno se da el gusto de usar St y poder hacer las cosas.

02 diciembre 2007

Uso de PowerPoint en las clases

UPDATE (2009): volvi a retomar este tema en un post más reciente sobre Presentaciones

 

Llevo ya casi un año dando clases de programación con Java.

En los cursos dí o vi (cursos "oficiales" de Sun e IBM en un caso y cursos de Microsoft en el otro) hay un patrón común: todos utilizan presentaciones tipo PowerPoint* para organizar el contenido del curso.

Esta organización basada en PowerPoint le facilita las cosas al instructor: uno en cada clase solo tiene que seguir los temas en los slides. ¿Pero ayuda en la enseñanza?

Presentación != Clase

Buscando en Internet sobre el uso del PowerPoint en la enseñanza me encontré con esta presentación. Los puntos principales marcados en la misma son:

  • No usar soniditos, ni animaciones para hacer la presentación más linda. No aportan nada al contenido y generan que el foco de atención se salga del contenido hacia los efectos de la presentación.
  • No utilizar fotos o gráficos que no estén relacionados con el contenido.
  • Usar gráficos lo menos posible (no coincido con esta idea, de hecho creo que los "bullets" son contraproducentes)
  • Usar colores con un contraste que permita la legibilidad cuando la presentación es mostrada. (es decir evitar el uso de los templates fashion que vienen con PowerPoint).
  • Más allá del PowerPoint ayudar a los alumnos a tomar notas sobre la clase. Esto es darles un outline de los temas tratados.

Sin embargo creo que con esto no alcanza. Por ejemplo tanto los slides de Sun como los de IBM no hacen uso de animaciones, colores raros o gráficos superfluos; pero hay algo que falta en ese tipo de cursos.

Lo que falta desde mi punto de vista es un enfoque más didáctico constructivo, en general los cursos están organizados usando un esquema parecido al de la facultad: "teórico" con la presentación en slides y luego práctica haciendo ejercicios en la máquina.

El problema es que cuando uno da la clase "teórica" todos los alumnos tienen una actitud pasiva y la mayoría pierde de vista los conceptos principales. Este problema se nota mucho cuando uno pasa a la práctica, por ejemplo: quizás estuve hablando como una hora sobre las clases e instancias y sin embargo a la mayoría de los alumnos les cuesta entender la diferencia cuando empiezan a programar.

Creo que en programación a diferencia de otras áreas, es muy fácil partir la enseñanza desde un problema y enseñar los conceptos a la par. Y luego utilizar presentaciones tipo PowerPoint pero solo para dar un resumen de los conceptos.

Un punto donde no coincido del todo con la presentación en el link anterior es el que dice que no es muy bueno poner muchos gráficos.

Sin embargo yo creo que hay una diferencia entre poner dibujos y fotos como metáfora y utilizar un diagrama para visualizar un concepto. Es más creo que tomar ideas sobre áreas como visualización de la información y diseño gráfico pueden ayudar a transmitir visualmente un concepto.

Algunos links relacionados:

* uso la palabra "PowerPoint" para referirme a los slides en general... de hecho en los cursos de Sun e IBM los slides son archivos PDF