Cursosā€Ž > ā€ŽCursadas Anterioresā€Ž > ā€Ž2014ā€Ž > ā€ŽNoc-1erCuatrimestralā€Ž > ā€Ž

Bitacora cuatrimestral 1C 2014

Clase 20 - MƩtodos y variables de clase. Manejo de errores.

publicado a laā€Ž(s)ā€Ž 24 jun 2014 6:59 por Mariana Matos

Los temas vistos en esta clase fueron:

Clase 19 - Sabores de colecciones. Composición. Inmutabilidad, igualdad e identidad

publicado a laā€Ž(s)ā€Ž 13 jun 2014 20:33 por Mariana Matos Ā  [ actualizado el 13 jun 2014 20:54]

En esta clase hablamos de:

Clases 17 y 18 - Clases, herencia, method lookup

publicado a laā€Ž(s)ā€Ž 8 jun 2014 14:47 por Mariana Matos Ā  [ actualizado el 8 jun 2014 14:49]

En estas clases empezamos a trabajar con clases y herencia. Estos conceptos afectan, ademÔs de la forma en la que modelamos con objetos, al mecanismo de Method Lookup, que ya no es tan simple como ir a buscar la implementación del mensaje en el objeto receptor.

También vimos una herramienta nueva para comunicar el diseño de una solución planteada en este paradigma que es el diagrama de clases.

De acƔ en mƔs ya no estaremos usando el Ozono para los TPs, sino el System Browser de Pharo.

En la clase del jueves estuvimos haciendo el parcial de Tanques analizando quién tiene la responsabilidad de resolver cada parte de la lógica y para la clase que viene (el jueves, porque el miércoles no hay clases) tienen que entregar el de Pepero incluyendo las pruebas ademÔs del file out del package donde tengan sus clases.

Clases 15 y 16 - Polimorfismo, bloques y colecciones

publicado a laā€Ž(s)ā€Ž 30 may 2014 8:09 por Mariana Matos

Los temas vistos en estas clases incluyeron:
Para la próxima clase hay que hacer el siguiente TP usando Ozono para ejercitar todos los temas vistos hasta ahora.
TP de colecciones: Se dice Atómico

Clase 14 - Intro al paradigma orientado a objetos

publicado a laā€Ž(s)ā€Ž 23 may 2014 16:02 por Mariana Matos Ā  [ actualizado el 23 may 2014 16:09]

Arrancamos con objetos, los temas de la clase fueron diferencia entre mensajes y métodos, referencias, self para que un objeto pueda mandarse mensajes a sí mismo, y dos de los tres pilares sobre los cuales se basa el paradigma:
El tercero (polimorfismo) es el tema principal de la clase que viene :)
Disclaimer: En la wiki van a ver cosas como AlgoQueEmpiezaEnMayuscula new, no le presten atención, eso no va a aparecer en nuestro código hasta dentro de algunas clases.

Para el miércoles que viene tienen que instalarse Pharo con Ozono, las instrucciones para esto lo pueden encontrar en la parte del software correspondiente. AdemÔs tienen que traer hecho en mÔquina el ejercicio 1 de la guía de objetos que es el ejemplo que estuvimos trabajando en clase, la onda para este TP es que se amiguen con el ambiente y puedan ver su código andando.

Desde la misma herramienta Ozono pueden exportar su trabajo (que incluye la definición de sus objetos y el workspace), eso lo imprimen tal cual sale, probablemente se vea bastante feo pero no se preocupen, viéndolo con cariño es entendible. No formateen eso a word o algo por el estilo porque se puede perder información importante.

Clase 10 - Findall

publicado a laā€Ž(s)ā€Ž 8 may 2014 20:40 por Mariana Matos

Hoy vimos el último tema del paradigma lógico: findall, un predicado de orden superior para armar listas con individuos que cumplan una determinada condición.

Para el miércoles que viene hay un TP integrador para hacer en mÔquina (recuerden entregar las consultas para probar el programa, no sólo el código). Se espera que apliquen todos los conceptos vistos (no olvidarse del polimorfismo!). Sólo usen listas cuando realmente sean necesarias.

El miƩrcoles que viene tambiƩn tenemos el simulacro de parcial, asƭ que practiquen en sus casas y no lleguen tarde asƭ lo aprovechan mƔs.

Clase 09 - Listas y functores. Forall. Polimorfismo

publicado a laā€Ž(s)ā€Ž 7 may 2014 20:11 por Mariana Matos

Hoy vimos cómo trabajar con individuos compuestos (listas y functores) y sobre todo el predicado de orden superior forall y cuÔndo generar  valores para las variables involucradas de modo que el predicado que usa forall sea inversible.

El enunciado que usamos para la clase es el TEG.

También hablamos un poco de polimorfismo con functores, que se usa para determinar si un objetivo fue cumplido y así poder abstraerse al definir el predicado ganador/1. Con los predicados polimórficos también es importante hacer un anÔlisis de inversibilidad para entender qué se puede o no hacer con ellos.

Otro tema que tocamos durante la resolución del ejercicio fue recursividad sobre listas. La solución planteada para resolver cuantosDeContinente/3 se caracteriza por tener dos casos recursivos para el mismo patrón de lista (cabeza y cola) que en la definición deben ser excluyentes entre sí para evitar una explosión combinatoria no deseada.

Al principio de la clase de maƱana vamos a hacer un mini TP de forall, asƭ que repasen lo visto hoy y pregunten por la lista en caso de tener dudas

Clase 08 - Introducción al paradigma Lógico

publicado a laā€Ž(s)ā€Ž 30 abr 2014 19:54 por Mariana Matos

Hoy arrancamos con un nuevo paradigma: el paradigma Lógico que al igual que a Funcional lo podemos categorizar como declarativo.
Para la clase que viene tienen que bajarse SWI Prolog y, ademÔs de probar lo que hicimos en clase y practicar libremente con las guías de ejercicios (ya pueden hacer las 2 primeras guías de ejercicios), hacer en mÔquina un TP de conjunción, disyunción y negación.

El enunciado lo pueden encontrar en la guía 2 de lógico, es el último ejercicio (Ej. 3, sobre quién asesinó a Tía Agatha).

La consulta principal que deben poder responder con este programa es:
?- asesino(Persona, tiaAgatha).

Clases 04 y 05 - Ejercitación, estrategias de evaluación y transparencia referencial

publicado a laā€Ž(s)ā€Ž 10 abr 2014 5:36 por Mariana Matos Ā  [ actualizado el 15 may 2014 6:51]

Clase 4

En esta clase estuvimos trabajando con este enunciado como TP4: Parcial de Padrinos MƔgicos
También se habló sobre Listas por comprensión y Listas infinitas, tema que se retomarÔ la clase que viene desde el punto de vista de Estrategias de Evaluación.

El jueves 10 no va a haber clases por el paro general de transportes. La planificación fue modificada considerando esto, la fecha del parcial no se mueve.

Para la próxima clase (Miércoles 16/4) se entrega el hecho en mÔquina (con consultas) el siguiente enunciado de parcial como TP5 (Integrador):
Parcial de pociones

Clase 5

Cerramos la parte teórica del paradigma funcional. En esta clase se vio Estrategias de Evaluación y Transparencia Referencial

Clase 03 - Aplicación parcial, composición y expresiones lambda

publicado a laā€Ž(s)ā€Ž 6 abr 2014 12:42 por Mariana Matos

Contenidos

Los temas nuevos que vimos fueron:

Tarea

Para la próxima clase resolver en mÔquina los siguientes problemas usando orden superior, composición y aplicación parcial siempre que sea posible.

1a) Definir sonTodosNombresDeVieja que recibe una lista de personas [(String,Int)] y una lista de nombres [String], y verifica que todos los nombres sean uno de los nombres de personas cuya edad sea al menos 80.
1b) Definir sonTodosComponentes que recibe una palabra y una lista de letras y verifica que todas las letras estƩn incluƭdas en la palabra recibida

2) Definir la función de orden superior sonTodos que pueda usarse para generalizar la lógica de las funciones del punto 1. CuÔl es el tipo de esta función?

3) Reescribir las funciones del punto 1 para usar sonTodos.

4) Dar un ejemplo de uso de sonTodos para que pueda ser un parÔmetro de la función existeAlgun :: ([a] -> Bool) -> [[a]] -> Bool , que recibe un criterio y una lista de listas y dice si alguna de ellas lo cumple.