Mi cursada - UNQ‎ > ‎Clases‎ > ‎Bitácoras‎ > ‎Bitácoras 2011 S1‎ > ‎

Lunes 14/3/2011

publicado a la‎(s)‎ 15 mar. 2011 8:21 por Nicolas Passerini   [ actualizado el 15 mar. 2011 11:01 por gisela decuzzi ]

Primera parte: aspectos administrativos de la materia

Arrancamos un poquito tarde porque varios se quedaron en la charla, para colmo no teníamos proyector. Como a las 8:20 comencé contando el resumen de las unidades, que se puede ver en Temario detallado. Hablamos también de la relación entre las unidades y de los objetivos de la materia que nos llevan a esa elección de temas.

Luego contamos los 4 trabajos prácticos que vamos a hacer:
  • El primero será un ABM en el framework Arena, asociado a los temas de la Unidad 2.
  • Luego haremos un TP asociado a la Unidad 3, muy chiquito con el objetivo de tener una visión general de la problemática de la programación web.
  • El tercer TP es el más grande y más importante, está asociado a la Unidad 4 y es donde tienen que tomar una decisión entre hacerlo en Wicket o Seaside.
  • Finalmente vamos a hacer un TP de investigación en el que tienen que (a) aprender una nueva tecnología, (b) realizar un programa de ejemplo en ella donde se vean sus características más interesantes y (c) presentarlo al resto de los compañeros.
Todos los trabajos prácticos son individuales, salvo el último que se puede hacer en parejas. No sé si quedó claro así que lo aclaro ahora: no tomamos un examen parcial, la aprobación de la materia se da únicamente en función de los trabajos prácticos.

También vimos un poco la estructura del site, que tiene 4 partes principales:
  • La Materia, con todas las cuestiones adminstrativas, el programa, nuestros correos, etc.
  • Temario detallado y sus subpáginas tiene todo el material teórico, esto es material de consulta permanente que hay que ir leyendo clase por clase.
  • De Material cuelgan un montón de recursos útiles principalmente para la parte práctica de la materia ejemplos, el software para instalar junto con los instructivos necesarios para hacerlo, etc.
  • Y finalmente en la sección Mi Cursada van a encontrar:
    • esta bitácora que se actualiza todas las semanas y tiene los resúmenes de las clases,
    • la planificación detallada (todavía no la subimos) y
    • una planilla con el estado de la cursada de cada uno de ustedes (también está pendiente).
Otra cosa que se mencionó fue la cuestión de los horarios y fechas, algunas notas al respecto:
  1. Los lunes tenemos poquito tiempo para la teoría así que vamos a tratar de ser bien puntuales para aprovecharlo al mango.
  2. Los jueves vamos a hacer mayoritariamente práctica y el horario no es tan estricto (más bien la salida es menos estricta, es decir: el que tiene la práctica lista se puede retirar).
  3. La idea es que la práctica se hace mayoritariamente en el aula aunque no el 100%. Mi recomendación es que traten de venir seguido (o mejor: siempre). Si bien es posible hacer la práctica en casa, es mucho más difícil porque si te trabás puede que tome un rato conseguir ayuda. En general vamos a tratar de avisar los días que se va a dar un tema específico en la práctica, así se aseguran de estar en clase ese día.
  4. Vamos a ser muy estrictos con las fechas de entrega, la experiencia dice que cuando nos relajamos se nos empiezan a acumular las entregas al final del cuatrimestre y terminamos perdiendo la materia por eso.
Eso nos tomó unos 45' así que a las 9:05 nos metimos en los temas teóricos de la Unidad 1.

Segunda parte: Primeros conceptos de las Interfaces de Usuario.

Hablamos largo y tendido sobre la relación entre el dominio y la interfaz de usuario, y por qué no consideramos que sea necesario programar en capas para poder separar ambos concerns. En el medio definimos diseño, arquitectura, capas y algún concepto más que se me debe estar escapando, también diferenciamos la idea de "niveles de abstracción" de "capas" (dejé pendiente la diferenciación entre layer y tier).

Aclaramos que el objetivo principal de esta materia es diseñar interfaces de usuario y (no lo dije exactamente así pero lo aclaro ahora:) eso incluye tanto el diseño interno como la forma en la que interactúa con el dominio (entendiendo además la diferencia entre diseño de sistemas y diseño gráfico).

El material de lectura para repasar estos temas está en la página de la Unidad 1. La reordené un poquito para que sea más simple, ahora están numerados por prioridad:
  • Los puntos 1 y 2 cubren lo que hablamos en clase, eso es lo mínimo que hay que tener sabido para la próxima clase teórica.
  • 3 y 4 es material complementario que también es útil para ir ampliando nuestra comprensión de la problemática.
  • De la parte que está bajo "Material de Lectura" es muy importante ir leyendo el primero. Como dije, es largo y no espero que lo lean de un día para el otro, pero vayan avanzando con eso como para terminarlo al final del cuatrimestre (no se duerman!).

A todo esto ya eran las 9:45 y entonces tiramos los lineamientos de lo que hay que hacer para la próxima clase:

Tarea para el hogar

  1. Repasar las cosas que vimos en Objetos I / II. En esta materia vamos a utilizar fuertemente algunos patrones de diseño. Por las dudas deberían repasar: Observer/Listener, Composite, Strategy, Command, Template Method y Singleton. Si alguno no lo vieron o no encuentran de dónde repasarlo avisen así tiramos algo de material al respecto. La fuente básica de todo esto es el libro Design Patterns de Gama et. al., ese libro está en biblioteca (aunque también es tan famoso que se pueden buscar los capítulos en Internet).

    Además las primeras tecnologías que vamos a ver van a ser en la plataforma Java, así que los que no cursaron Objetos II o no se sienten duchos con el Java deberían apuntar a ponerse las pilas. Para eso, recomiendo este apunte que escribió Leo Gassman: Java para programadores objetosos.

  2. Lean el material de la Unidad 1 (sigan las recomendaciones de la sección anterior).

  3. Sería bueno ir comenzando a armar tu entorno de trabajo en casa, eso incluye:
    • Si vas a usar tu notebook tanto en casa como en el aula, sería bueno tener un doble booteo con Ubuntu.
    • Si se dan maña con la tecnología pueden arrancar a instalar Java, Eclipse, SVN y Maven. Si se sienten perdidos no se preocupen, el jueves lo vamos a hacer en clase y después va a ser más fácil replicarlo en casa. Lo que sí tienen que tener en cuenta es que en la clase vamos a usar Ubuntu y algunas cosas del tutorial también son específicas del sistema operativo, tienen que pensar si quieren usar Ubuntu o Windows para programar en sus casas. Esto será recién obligatorio para el jueves 31 de marzo

  4. Además dejamos una idea para pensar: ¿Por qué los observers/listeners permiten la comunicación en ambos sentidos entre UI y dominio sin producir un acoplamiento entre ambos?
       


Comments