Cursosā€Ž > ā€ŽCursadas Anterioresā€Ž > ā€Ž2017ā€Ž > ā€ŽTar-MiĆ©rcolesā€Ž > ā€Ž

BitƔcora de clase - MiƩrcoles Tarde 2017

Links a enunciados de TPs (replicados aquĆ­ para que no se pierdan):

Manejo de Errores

publicado a laā€Ž(s)ā€Ž 5 oct 2017 8:07 por Mariana Matos Ā  [ actualizado el 5 oct 2017 12:22]

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.

publicado a laā€Ž(s)ā€Ž 14 sept 2017 12:19 por Mariana Matos Ā  [ actualizado el 14 sept 2017 12:30]

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

publicado a laā€Ž(s)ā€Ž 8 sept 2017 7:55 por Mariana Matos Ā  [ actualizado el 8 sept 2017 7:56]

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

publicado a laā€Ž(s)ā€Ž 1 sept 2017 15:12 por Mariana Matos

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.

Para crearse el nuevo repositorio, tienen que hacerlo desde la siguiente tarea del classroom: https://classroom.github.com/g/aHzuvxpp
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

publicado a laā€Ž(s)ā€Ž 23 ago 2017 10:14 por Mariana Matos Ā  [ actualizado el 24 ago 2017 10:13]

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.

AdemƔs agregamos un par de herramientas nuevas para trabajar:
- Git, ahora también desde el IDE , estÔ muy bien explicado e incluso la forma de agregar los archivos al commit como se explica ahí es mÔs prolija, mejor que hacer un Add to index desde la raíz del proyecto antes de commitear. También incluye otras explicaciones que les pueden resultar útiles para el TP que exceden al flujo bÔsico de clonado seguido por los sucesivos pull, add, commit y push.
- Testeo unitario, en clase hablamos un ratito sobre:
  • Āæpor quĆ© testear?
  • ĀæcuĆ”ndo testear?
  • ĀæquĆ© testear?

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

publicado a laā€Ž(s)ā€Ž 18 ago 2017 10:47 por Mariana Matos Ā  [ actualizado el 18 ago 2017 11:48]

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

publicado a laā€Ž(s)ā€Ž 5 jul 2017 14:01 por Mariana Matos Ā  [ actualizado el 5 jul 2017 14:05]

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.

findall - donny no


AritmƩtica, functores y polimorfismo

publicado a laā€Ž(s)ā€Ž 30 jun 2017 14:51 por Mariana Matos

En esta clase vimos:

Pueden complementar lo visto con las siguientes guĆ­as:


Inversibilidad y Para Todo.

publicado a laā€Ž(s)ā€Ž 15 jun 2017 17:14 por Mariana Matos

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.

Con lo visto hasta ahora puede avanzar con las guĆ­as de Mumuki:

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.