unq-clases-2012c1-clase1-1232012-introduccion
Arrancamos contando un poco sobre la materia. Definimos que ibamos a ver “herramientas”, pero cognitivas, conceptos, que son los que perduran. Hicimos referencia a este google site.
Introducción a la Materia
Cuestiones administrativas
Definimos que la forma de evaluación de la materia está principalmente basada en las prácticas, con 4 Trabajos Prácticos:
- TP0 - Intro a Scala
- TP1 - Traits en Smalltalk y Scala, con dos entregas el 12⁄4 y 7⁄5.
- TP2 - Prototipos, aspectos y metaprogramación con fecha de entrega 21⁄5 y 4⁄6.
- TP3 - Trabajo de investigación, a presentar en clase los días 11⁄6 o 18⁄6.
Aquellos alumnos que tengan buenas calificaciones en sus trabajos prácticos y regularidad en las entregas, serán eximidos del examen parcial, que tendrá fecha el 2⁄7. En la planificación están las fechas de entrega y los recuperatorios de los TPs.
Destacamos que es muy importante para poder seguir la materia el entregar cada TP en fecha; si te atrasás en un TP le empezás a comer tiempo al próximo y eso termina en una bola de nieve de la que no es posible salir. Por eso no vamos a aceptar ninguna entrega de TP fuera de las fechas que están propuestas en la planificación.
Los enunciados de esta materia son abiertos, es decir, que tienen la libertad de buscar un dominio ustedes mismos, en los que aplicar los conceptos que se planteen como objetivo en cada TP. Por supuesto, si no se les ocurre nada, tenemos algunas ideas para que implementen. En cada TP, la primera entrega es una entrega de avance. El objetivo es ver cómo andan, guiarlos un poco, destrabar algo si hace falta, verificar que estamos apuntando a algo adecuado para la materia y para los objetivos del TP. En la nota final será tenido en cuenta no sólo el resultado al que lleguen sino el recorrido que siguieron, el nivel de cumplimiento, que se refleja en gran parte en las calificaciones asignadas a las entregas parciales.
Tecnologías
En la materia vamos a estar utilizando muchas tecnologías distintas que nos permiten poner a prueba los distintos conceptos que vamos aprendiendo. Para simplificar un poco armamos una Máquina Virtual de la materia que ya contiene todos entornos para trabajar sin perder tiempo en complejidad accidental de instalaciones y configuraciones. Sin embargo, es importante no dejarse estar con las cuestiones tecnológicas, porque no es infrecuente que produzcan trabas; si lo dejo para el último día y me encuentro con una traba, entonces voy a estar en problemas.
Por eso, ya desde esta semana comenzamos con una entrega de un TP0 que es “para entrar en calor”. Ojo, el TP es sencillo, pero es obligatorio.
Contenido de la Materia
Comenzamos hablando sobre la visión general de la materia y luego describimos rápidamente cada una de las unidades, que se encuentran en definidas en el Temario.
Unidad I
Estuvimos un rato largo hablando de Sistemas de tipos.
Intro a Scala
Vimos algunas cosas básicas del lenguaje siguiendo este tutorial. Los temas que mencionamos son:
- Un poco de sintaxis, como definir clases, métodos, constructores, variables.
- Todo es un objeto: números, funciones.
- Funciones anónimas, métodos sin parámetros, aplicación parcial.
- Case classes y pattern matching.
Tipos genéricos. Les dejo para ustedes mirar la interacción con Java
Cosas para leer
Tienen dos cosas importantes para leer:
- Sobre la teoría de tipos hay bastante material en Unidad 1 - Esquemas de tipado
- Y como ayuda para el TP0, tienen la página que armamos con material sobre Scala.
Por otro lado, si están un poco olvidados de Smalltalk, les recomiendo leer este repaso del paradigma de objetos y la intro a Pharo Smalltalk, es material para arrancar, no esperen aprender nada loco.
Tareas
Para el 26⁄3 (tienen 15 días, pero no estaría mal terminarlo para la semana que viene)
- TP0
- Hacer andar la VM.