Links a enunciados de TPs (replicados aquĆ para que no se pierdan):
|
BitƔcora de clase - MiƩrcoles Tarde 2017
Manejo de Errores
En esta clase estuvimos hablando sobre excepciones, cómo usarlas, cuĆ”ndo usarlas y quĆ© hacer al respecto cuando ocurren. Pueden leer mĆ”s sobre este tema en el siguiente apunte. Les dejo tambiĆ©n un link al código de la clase de ayer donde vimos cómo tirar excepciones en Wollok, cómo atraparlas y cómo validar los casos infelices desde los tests. El manejo de errores no es algo propio del paradigma de objetos, sin embargo forma parte de las herramientas bĆ”sicas que ofrecen los lenguajes que se basan en Ć©l. En funcional (en particular en Haskell) vimos que existen funciones que lanzan errores (por ejemplo head [] estalla porque no tiene ninguna respuesta razonable), pero este paradigma ademĆ”s tiene otras formas de trabajar con operaciones que podrĆan fallar mĆ”s avanzadas (los curiosos podrĆan investigar quĆ© es una Mónada o anotarse a TĆ©cnicas Avanzadas de Programación). Sobre estructurado, hay lenguajes que soportan este mecanismo, sin embargo C (uno de sus mayores exponentes) no es uno de ellos. Les dejo para su deleite una respuesta de stackoverflow a la pregunta "How to throw an exception in C?". Con lo que vimos en esta clase ya pueden hacer completa la entrega 3 del TP de objetos, incluso podrĆan hacer la próxima entrega porque ya no vamos a incorporar herramientas nuevas. Lo que nos falta ver ya no depende de nuevos conocimientos, sino formas de resolver problemas distintos con lo que ya sabemos, entendiendo las ventajas y desventajas de las herramientas que tenemos, y bastante prĆ”ctica para toparnos con distintas situaciones y pensar cómo modelarlas usando todo lo aprendido. |
Herencia. Method Lookup. Interfaz y Clase Abstracta.
Los temas que vimos en esta clase fueron: El código de la clase lo pueden encontrar acĆ”. Para repasar en Mumuki: GuĆa de Herencia. TambiĆ©n estĆ” actualizado el enunciado del TP con los nuevos requerimientos de la segunda entrega. |
Colecciones y Bloques
En esta clase incorporamos nuevas herramientas de trabajo que son fundamentales para empezar a hacer programas un poquito mĆ”s grandes y complejos: El código de esta clase lo puede ver en aquĆ. Recuerden que todos los ejemplos estĆ”n en un mismo proyecto Wollok, con lo cual pueden directamente clonarlo para tener todo en el entorno. Con lo que vimos hasta ahora, pueden trabajar con las siguientes guĆas de Mumuki:
También con estos últimos temas que incorporaron estÔn en condiciones de completar la primer entrega del TP de objetos. |
Clase de clases + TP de objetos
En esta clase hablamos de: Con lo que vimos ya tienen suficiente como para arrancar la primer entrega del TP. La semana que viene vamos a ver el tema que falta para que estĆ©n en condiciones de terminar esa primer entrega. Eso les va a generar el repo con el proyecto de base para que puedan empezar a trabajar. Dado que para arrancar con el TP de lógico hubieron algunas confusiones con los nombres de grupos, sumado que algunos se reagruparon, generen grupos nuevos siguiendo esta convención: G<nro de grupo>-2C. Por, quienes actualmente formen parte del grupo 1 deberĆan armar el grupo con el nombre G1-2C. Recuerden que para tener acceso al nuevo repositorio, todos tienen que entrar por el link del classroom y crear el grupo con el nombre apropiado o sumarse si uno de sus compaƱeros ya lo hizo antes que ustedes. Recomendación, eviten repartirse el trabajo por puntos, ya que algunos podrĆan ser dependientes de los otros. Lo mĆ”s conveniente es que se pongan de acuerdo entre todos cual serĆa la interfaz principal de sus objetos y clases, vayan implementando en paralelo lo necesario para hacer andar cada caso de prueba y pusheen en el repo sus cambios acotados tan pronto como tengan la funcionalidad andando y testeada. |
Clase de laboratorio
En esta clase estuvimos trabajando entre todos sobre el siguiente proyecto: https://github.com/pdep-mit/clase-de-laboratorio-wollok Actualmente en el branch principal (master) se encuentra el código final integrando lo que estuvieron haciendo en los distintos equipos de trabajo en el laboratorio.
Y luego ya nos mandamos de una a implementar algunos casos de prueba para el problema que Ćbamos a resolver. Este apunte amplĆa bastante lo que vimos y, por lo menos hasta la sección 7 no se van a topar con nada que no hayamos visto. |
Introducción al Paradigma Orientado a Objetos
En esta clase arrancamos con el tercer y Ćŗltimo paradigma de la materia: Objetos, el cual llevaremos a la prĆ”ctica con el lenguaje Wollok. Los conceptos principales que vimos en esta primer clase fueron: TambiĆ©n vimos un pequeƱo ejemplo introductorio en Wollok en el cual se manifestaron esos conceptos, y tambiĆ©n dio para hablar sobre: La clase que viene vamos a tener laboratorio, donde vamos a hacer una clase prĆ”ctica usando las herramientas que provee el IDE para hacer testeo unitario y usar git. Para repasar y practicar con Wollok online, tambiĆ©n hay guĆas de Mumuki que pueden encontrar entrando acĆ”. En particular con lo que vimos en esta primer clase alcanza para las siguientes guĆas completas: Para las guĆas prĆ”cticas (esta y las que vengan mĆ”s adelante) se recomienda usar el IDE, ya que son ejercicios mĆ”s largos que los de los paradigmas previos y les puede servir para evitar errores sintĆ”cticos antes de enviar la solución. |
Recursividad y Listas
En esta clase cerramos los conceptos de este paradigma luego de incorporar: Con esto pueden terminar las guĆas de lógico, en particular: Les dejo tambiĆ©n el código de los ejemplos de la clase de hoy y la ppt para que no maten gatitos. |
AritmƩtica, functores y polimorfismo
En esta clase vimos:
Pueden complementar lo visto con las siguientes guĆas:
|
Inversibilidad y Para Todo.
En esta clase hablamos sobre problemas de inversibilidad que surgieron a partir de comparaciones y el uso del predicado not/1. El otro tema fuerte de esta clase fue el cuantificador universal, mejor conocido como Para Todo. De la mano de esta idea introdujimos un segundo predicado de orden superior llamado forall/2, que al igual que el not, tambiƩn tiene problemas de inversibilidad.
TP de lógico, primera entrega: El enunciado estĆ” dividido en dos partes (parte 1 y parte 2), pero ambas son para dentro de dos semanas. Al igual que como hicimos para funcional, se espera que lo desarrollen de forma grupal, compartiendo el código mediante github e interactuando con su tutor asignado. Para obtener el repositorio sobre el cual trabajar, que ya va a venir con el código de base incorporado, tienen que entrar a este assignment de github. Recuerden, al armar los grupos, que deberĆan llamarlo g1, g2, .., gN de acuerdo al nĆŗmero de grupo que figure en la planilla, asĆ su tutor encuentra el repo fĆ”cilmente. |
Introducción al Paradigma Lógico
En esta clase arrancamos con el Paradigma Lógico para el cual estaremos usando el lenguaje Prolog y vimos los siguientes temas:
GuĆas para repasar y practicar:
Tarea para la semana que viene: |