Fwd: mensaje a retransmitir ...

12 views
Skip to first unread message

Nicolas Passerini

unread,
May 26, 2015, 10:37:50 AM5/26/15
to tadp-profesores, paco-d...@googlegroups.com
Carlos me pide forwardear esto a tadp-profesores, pero si yo no entiendo mal, la lista que tenemos justamente para charlar temas entre tadp, phm y obj3 es paco-docentes... así que por las dudas va a las dos:

---------- Forwarded message ----------
From: Carlos Lombardi <carlo...@gmail.com>
Date: 2015-05-26 11:16 GMT-03:00
Subject: mensaje a retransmitir ...
To: Nico P gmail <npass...@gmail.com>


... dado ue parece que no estoy en tadp-profesores. Abrazo - Carlos

<mensaje-a-reenviar>
Hola,

estoy mirando el programa de Objetos 3, tengo ganas de pasarle una mano de redacción, aprovechando que lo están pidiendo en la UNQ.
Aproveché la oportunidad para pensar un poco en la materia. Creo que a los alumnos de Quilmes se les hace un poco extensa, muchos temas en una misma materia, que en la UNQ es de 4 horas semanales. Además, creo que en el nivel que están (entre el cuarto y el quinto cuatrimestre) todavía están un poco verdes para llegar a entender algunas cosas que decimos. En particular me pasó con la clase de declaratividad, sentí que estaba hablando un nivel más arriba de lo que casi todos los alumnos podían llegar a entender. 
Por eso les dejo la pregunta de si no conviene bajar algún tema. Para mí los tres ejes actuales de Obj3 son la base de los tres TP: alternativas a la herencia simple, metaprogramación y DSLs. Por afuera de esto damos una clase de tipos y otra de declaratividad. Tal vez se podría bajar una, o las dos, para dar más tiempo a que los alumnos agarren mejor los otros temas.
No me queda claro qué conviene, estoy tirando la idea, y quiero preguntarles cuál es la percepción en la UNSaM y en la UTN.
Esto, para mí, a título filosófico, este es el último cuatrimestre que estoy en Obj3, no sé por cuánto tiempo.

Abrazo - Carlos
</mensaje-a-reenviar>


Carlos Lombardi

unread,
May 26, 2015, 10:46:09 AM5/26/15
to Nicolas Passerini, paco-d...@googlegroups.com
tiene razón Nico, yo me mareé con las listas, va a paco-docentes

--
Has recibido este mensaje porque estás suscrito al grupo "paco-docentes" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a paco-docente...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pablo de Haro

unread,
May 26, 2015, 11:12:29 AM5/26/15
to Carlos Lombardi, Nicolas Passerini, paco-d...@googlegroups.com
En TADP tomamos la decisión de bajar declaratividad y DSLs en su momento. En nuestra experiencia, DSLs está bueno como tema pero resulta en algo medio desconectado. No recuerdo si esa fue la razón por la que lo sacamos...

Hoy en día estamos dando:
- Alternativas a herencia simple
- Metaprogramación (sólo en Ruby)
- Tipado (una introducción más que nada, lo necesario para usar Scala... que es bastante :P)
- Programación híbrido funcional-objetos (Inmutabilidad, polimorfismo vs pattern matching, y algunos otros focos que estoy olvidando)

En general los alumnos están agarrando bien los temas. Alternativas a herencia simple y metaprogramación ya lo tenemos bastante aceitado y tenemos buena respuesta de los alumnos. El resto todavía no tanto, pero lo estamos trabajando.

En TADP tenemos una motivación importante además para dar tipado, y es que más allá de Paradigmas no se ve mucho del tema, y es algo que consideramos importante, más o menos.

El programa de TADP lo habíamos redactado con Demian y Leo para que fuera lo suficientemente genérico para permitir varios cambios. Creo que igual nos alejamos bastante con la parte de programación híbrido funcional-objetos...

Carlos Lombardi

unread,
May 28, 2015, 11:46:00 PM5/28/15
to Nicolas Passerini, paco-d...@googlegroups.com, tadp-profesores, Leo Gassman
Nico, compro. La segunda materia puede ser Parseo y Generación de Código en la UNQ, que es obligatoria para la licenciatura. Deberíamos mecharla con lo que esté de contenidos mínimos. Se le puede hacer una oferta a Edu para abrirla en 2016 ... si conseguimos gente que se sume, para no estar tapados de laburo. Abrazo - Carlos

2015-05-28 19:47 GMT-03:00 Nicolas Passerini <npass...@gmail.com>:
Yo venía pensando que "lo ideal" es que Objetos3 pase a ser dos materias.

1) Objetos 3 quedaría con las partes de modelos alternativos y metaprogramación. 
Dadas las condiciones actuales de la carrera y los conocimientos que traen los chicos, creo que es necesario darle bastante bola a "modelado con objetos"... que al modelado sobre los conceptos específicos de la materia se agrega una parte importante de "repaso" de los conceptos de modelado más tradicionales.

Hoy en día se utiliza mucho Javascript en la industria y se empezó a usar con una idea de diseño un poco más acabada que hace algunos años, así que yo estaría tentado a darle bola a eso porque hay una intersección importante entre (a) temas teóricos que uno podría querer mostrar en la materia y (b) cosas de aplicación actual en la industria. Estoy bastante tentado de usar Javascript para mostrar:
- Objetos sin clases (que en otro momento preferíamos Self o Ioke... creo que hacerlo en Javascript le agregaría un valor extra a pesar de las limitaciones con respecto a esos dos).
- Combinaciones con otros paradigmas, uso de funciones, asincronismo... técnicas de modelado que incluyan todos esos temas.
- Y me pregunto seriamente si no usarlo para mostrar metaprogramación en lugar de Ruby.
- También sirve como ejemplo de lenguaje dinámico.

Otros temas tradicionales de Obj3/PHM
- Mixins... podrían quedar, no sé si son indispensables. Lo más interesante es hacer un TP entero en Scala, modelando con funciones, en lenguaje estático pero más flexible que Java, si hacemos todo eso cabe agregarle mixins.
- Aspectos... me da lástima perderlo, creo que es un tema que hoy se sigue usando pero ya no en la forma en la que lo veníamos mostrando.... hay que darle una vuelta.
- Tipos y/o binding... si bien no es el objetivo de la materia tener un tratamiento exhaustivo de estos temas, creo que vienen con muchas dudas y que es necesario tomarse algún tiempo para aclarar esos conceptos. La sola experiencia de postergar esa clase hasta la mitad de la materia que hicimos en los últimos dos cuatrimestres para mí fue negativa porque francamente no entienden qué es estático, qué es dinámico, qué es un tipo... es base para explicar todo lo demás.

En resumen la materia podría tener foco en tres TPs: uno en Scala, otro en Ruby, otro en Javascript. En los tres el foco estaría más que nada en "modelar con objetos", pero en cada caso aprovechando alguna característica específica.
Scala: Mixins, tipado estático, tipos estructurales, tipos paramétricos.
Javascript: Ausencia de clases, asincronismo.
Ruby: Metaprogramación
En los tres: lambdas

Si me tengo que bajar de uno me bajaría de Ruby y le bajo la prioridad a metaprogramación.

Insisto en focalizar el tema de "modelado", usando formas avanzadas ("avanzadas"... ponele) de modelado, por ejemplo yo veo muchos chicos que para modelar cualquier cosa quieren hacer una clase, no entienden que pueden modelar distintos conceptos con instancias de una clase configuradas distintas, o usar bloques para modelar algo.

Programación declarativa podría ser considerado como un tema de "modelado avanzado" o podría ir a parar a la próxima materia.

2) Materia de lenguajes... 
En Quilmes es complicado porque ya hay algunas materias que hablan de estos temas. En UTN está la que propuso Ernesto. En la UNSAM si se abre la licenciatura entiendo que la materia de lenguajes la daríamos nosotros así que ahí es más fácil. En cada caso hay que ver cómo se engancha... pero las ideas que se me ocurren son:
- El TP más grande sería lo mismo que se está haciendo hoy, DSLs en XText. Esa sería la segunda mitad de la materia, aprovechando todas las herramientas de XText para armar un IDE. La versión fácil es hacer TPs que generen código, me dieron mucho resultado los que generan HTML, sobre esa base se pueden hacer muchas cosas interesantes.
- Lindo pero más heavy y no sé si entra es hacer un pequeño intérprete sobre un lenguaje simple... qué se yo, me tienta mucho pero le veo menos aplicación "industrial". Lo dejo para pensar.
- La primera parte de la materia podría aprovechar a meter teoría sobre gramáticas y todas las cosas que hoy usamos "intuitivamente" sin formalizar (bah, las que no se incluyan en materias anteriores).
- Además estaría bueno hacer algún DSL en otras tecnologías además de XText, ponele usando parser combinators en Scala o Haskell.
- Por completitud uno se tienta de hacer algún DSL embebido, pero en la práctica nunca me resultó fácil hacer una práctica/TP interesante así que no sé.

Resumen: más teoría + tp chiquito de parser combinators en Scala + tp grande en XText con generación de código
Resumen2: mucho foco en DSLs que tengan aplicación industrial.


2015-05-28 13:44 GMT-03:00 Mariana Matos <mmat...@gmail.com>:

Hola Carlono

En TADP actualmente no se está dando más DSLs, ahora estamos viendo alternativas a herencia simple y metaprogramación en la primer parte de la materia y en la segunda vemos programación mezclando objetos y funcional (usamos Ruby la primer mitad y Scala la segunda).

De cuando todavía dábamos DSLs, teníamos una clase de declaratividad antes de empezar a hablar de DSLs y una clase de tipado más al principio, antes de ver metaprogramación, que por ahí quedaba medio descolgada del resto de la materia (pero tomábamos un parcial de polimorfismo y sobrecarga). La de tipado era la parte más discutible de la planificación vieja, que manteníamos porque considerábamos que era un bache de los pibes que teníamos que cubrir más que nada.

Saludos!

--
Has recibido este mensaje porque estás suscrito al grupo "tadp-profesores" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tadp-profesor...@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.

--
Has recibido este mensaje porque estás suscrito al grupo "tadp-profesores" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tadp-profesor...@googlegroups.com.

Nicolas Passerini

unread,
Jun 1, 2015, 12:25:57 PM6/1/15
to Carlos Lombardi, paco-d...@googlegroups.com, tadp-profesores, Leo Gassman
Ok, sería genial si se puede hacer eso. Yo lo veo difícil... digo, que nos dejen dar esa materia a nosotros.

Yo imagino que Edu va a querer una implementación más tradicional de esa materia, mucho más teórica. La que yo me imaginaba más probable es armar una electiva, pensada como posterior a Parseo y Generación de Código. Entonces a los chicos que ya vienen con una base teórica buena, les enseñás cómo aplicar todo lo que saben en contextos industriales.

Ojo, la que vos proponés me encanta, pero no sé si Edu y Fidel van a querer.

Ortogonalmente a esos pensamientos "ideales", hay cosas más de implementación para pensar:
1) Plan transitorio: si vamos a sacar DSLs de Obj3 antes de empezar a darlos en otro lugar. A favor: ya lo dijiste Obj3 está apretada. En contra: me da pena que se caiga DSLs de la carrera.
2) Suponiendo que haya espacio para dar materia adicional... ¿quién la daría? 
Reply all
Reply to author
Forward
0 new messages