Seguimiento


 Clase 5 - 9/9 Contenido de la clase
  • Dos características típicas en los lenguajes OO más tradicionales:
    • Las clases tienen varios roles:
      • Definición del comportamiento de un objeto.
      • Definición de tipos
      • Creación de objetos
    • La única herramienta automática para compartir comportamiento es la herencia (más aún, herencia simple).
  • La delegación no alcanza para solucionar esos problemas. Por ejemplo en presencia de estructuras tipo Template Method.
  • Problemas de la herencia múltiple.
    • ¿Qué pasa si heredo métodos con la misma firma de dos o más superclases?
    • ¿Qué pasa si quiero combinar el comportamiento heredado de diferentes superclases?
    • ¿Cómo se resuelven los chequeos de tipos en las superclases abstractas?
    • ¿Qué pasa si quiero ponerle un comportamiento especial sólo a algunos objetos?
  • Mixins
    • Sintaxis en Scala.
    • Linearización.
    • Super.
    • Ejemplo de los vehiculos.
Ejemplos de código
Material de Lectura
Tarea para el Hogar
  • Comenzar con la entrega 2 del TP1
 Clase 4 - 2/9 Contenido de la clase
  • Posibles clasificaciones para los sistemas de tipos en el paradigma de objetos.
  • Casteos y Coerciones.
  • Duck Typing.
  • Comparación cualitativa de los sistemas de tipos en diferentes lenguajes.
Ejemplos de código
Material de Lectura
Tarea para el Hogar
  • Terminar la primera parte del TP1 (ejercicios 1 y 3) y traerlo andando para la próxima clase.
  • Coordinar por mail un horario para la entrega de TP.
  • Sería bueno si pueden ir publicando el TP en un svn o git. Por ahora no lo vamos a exigir porque hasta donde yo puedo ver no es posible hacer commit desde el aula, entonces no tiene demasiada utilidad. Pero espero que tarde o temprano se pueda y ahí sí va a ser obligatorio tener un repositorio de código.
 Clase 3 - 26/8Contenido de la clase
  • Introducción al Scala: clases, objetos, métodos, variables (var) y constantes (val).
    • Uso de variables públicas y/o accessors en Java vs. Scala, análisis desde el punto de vista del binding.
    • Funciones de orden superior.
  • Double Dispatch
  • Pattern mathching.
  • Introducción a los sistemas de tipos. 
  • Subtipado. Subsumption.
  • Clasificación de los tipos según el momento de chequeo: chequeo estático o anterior a la ejecución, chequeo dinámico o durante la ejecución, ausencia de chequeo.
Ejemplos de código
  • http://xp-dev.com/svn/uqbar/examples/paco/trunk/dispatch/scala/rabufetti-scala contiene ejemplos sobre double dispatch y pattern matching.
  • http://xp-dev.com/svn/uqbar/examples/paco/trunk/languages/scala contiene ejemplos introductorios al lenguaje Scala, en particular:
    • La clase Pepita :) tiene los ejemplos más básicos como para empezar
    • La clase functions.HigherOrder contiene ejemplos de manejo de colecciones utilizando bloques (o funciones de orden superior, como prefieran decirles).
    • Las clases Expression* tienen ejemplos variados de pattern matching, más complejos que los de Rabufetti.
Material de Lectura
Tarea para el Hogar
  • Continuar avanzando con el TP y mandar dudas.
  • Asegurarse de tener forma de ejecutar código Scala en el aula, para poder entregar el TP.
Clase 2 - 19/8Feriado Nacional 
 Clase 1 - 12/8  
Contenido de la clase
  • Introducción a la materia, de qué se trata, horaro de clase, trabajos prácticos y criterios de evaluación
  • Comenzamos con el material de la Unidad 1, que habla sobre Tipos y Binding 
Ejemplos de código
  • El ejemplo lo pueden checkoutear con el svn de acá. El ejemplo está hecho en XTend y Java, las intrucciones para armar un entorno con XTend son las mismas que para hacer andar XText.
Material de Lectura
Tarea para el Hogar
  • Armar parejas de TP y mandarlas por mail.
  • Preparar el entorno de Scala, tanto para poder trabajar en casa como en la Universidad (coordinar con el compañero de TP).
  • Programar la primera parte del TP1 (ver la página de Trabajos Prácticos), aprovechar para aprender Scala, venir con preguntas!
  • Repasar el material de lectura y en particular el último ejemplo, que tiene un enunciado sobre el que vamos a trabajar la clase que viene.
Comments