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.

1-10 of 18