Bitácora de Clase

Paradigma Orientado a Objetos

Clase 25 - Práctica: Computadora

En esta clase resolvimos la práctica integradora de Computadoras.

Clase 24 - Práctica: Monetización

En esta clase resolvimos la práctica integradora de Monetización.

Clase 23 - Manejo de Errores

En esta clase estuvimos hablando sobre excepciones, cómo usarlas, cuándo usarlas y qué hacer al respecto cuando ocurren.

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.

Se puede ampliar sobre estos temas con el Módulo 10 de objetos.

Trabajos Prácticos

Para el jueves 18/11 tienen que resolver el TP4, es el ejercicio 4 de la Guía de TPs de Objetos.

Clase 22 - Herencia vs. Composición

En esta clase resolvimos la práctica Por la horda! haciendo foco en las decisiones de modelado, particularmente relativas al uso de herencia o composición.

Trabajos Prácticos

Para el jueves 11/11 tienen que resolver el TP3, es el ejercicio 3 de la Guía de TPs de Objetos.

Clase 21 - Herencia

En esta clase vimos el modelo de herencia simple que es el que se usa en Wollok así como la mayoría de los lenguajes orientados a objetos como mecanismo de subtipado y cómo trabaja el method lookup para encontrar el método a ejecutar luego de un envío de mensaje.

Se puede ampliar sobre estos temas con el Módulo 13 de objetos.

Para ejercitar en Mumuki

De Mumuki, pueden trabajar con la lección 11, donde se abordan los temas de esta clase.

Clase 20 - Colecciones y Bloques

En esta clase vimos cómo trabajar con colecciones en Wollok. Además introdujimos el concepto de bloque, que nos ayuda a parametrizar algo para hacer. Próximamente le estaremos dando un uso más intensivo.

Se puede ampliar sobre estos temas con el Módulo 4 de objetos.

Para ejercitar en Mumuki

De Mumuki, pueden trabajar con las lecciones 6, 7 y 8 que cubren estos temas. Además con esto se desbloquea el resto de la lección de clases e instancias, donde se usaban colecciones :)

Trabajos Prácticos

Para el jueves 28/10 tienen que resolver el TP2, es el ejercicio 2 de la Guía de TPs de Objetos.

Clase 19 - Clases

En esta clase incorporamos una nueva herramienta de modelado: las clases, y vimos cómo podemos hacer para instanciar objetos a partir de una misma clase.

Se puede ampliar sobre estos temas con los el Módulo 8 y Módulo 9 de objetos.

Para ejercitar en Mumuki

Pueden trabajar con los primeros 8 ejercicios de la guía 10 (Clases e instancias).

Clase 18 - Práctica: La Feria

En esta clase resolvimos la práctica La Feria.

Clase 17 - Intro a Objetos

En esta clase arrancamos con un nuevo paradigma, y eso implica replantearnos todo lo que ya sabemos. Nos volvimos a preguntar qué es un programa, esta vez en el Paradigma Orientado a Objetos y la respuesta esta vez está basada en dos ideas: objetos y mensajes.

A lo largo de la clase tocamos los siguientes temas:

Para este paradigma vamos a estar trabajando con Wollok. En esa página van a encontrar todo el material que necesiten para complementar lo que vemos en clase, así como la forma de instalar el entorno. En la sección Documentación -> Explicación de Conceptos van a encontrar una guía rápida de cómo se usan los distintos elementos del lenguaje.

Además pueden encontrar ejercicios resueltos en la sección Ejemplos, y en la sección Tour les van a dar un paseo por las herramientas para que descubran cómo sacarle el jugo al IDE.

Se puede ampliar sobre estos temas con el Módulo 1, Módulo 2 y Módulo 3 de objetos.

Para ejercitar en Mumuki

Pueden trabajar libremente con Mumuki hasta la guía 5 inclusive.

Trabajos Prácticos

Para el jueves 7/10 tienen que resolver el TP1, es el ejercicio 1 de la Guía de TPs de Objetos.

Paradigma Lógico

Clase 16 - Práctica: Festivales de Rock

En esta clase resolvimos la práctica Festivales de Rock.

Clase 15 - Práctica: La Cárcel

En esta clase resolvimos la práctica La Cárcel.

Clase 14 - Listas

En esta clase cerramos los temas del paradigma lógico viendo cómo se trabaja con otro tipo de individuo compuesto que son las listas.

Vimos cómo se puede hacer para trabajar con listas recursivamente usando pattern matching, y también los principales predicados que ya vienen para trabajar con listas más cómodamente, como length/2, member/2 y sumlist/2. También vimos un nuevo predicado de orden superior: findall/3.

Se puede ampliar sobre estos temas con el Módulo 3, el Módulo 4 y el Módulo 5 de Lógico.

Para ejercitar en Mumuki

De Mumuki pueden trabajar con todas las guías, ya que terminamos de ver todo el contenido teórico que teníamos planeado para este paradigma.

Trabajos Prácticos

Para el jueves 26/8 tienen que resolver el TP4 que consta de 2 ejercicios. Son los ejercicios 7 y 8 de la Guía de TPs de Lógico.

Clase 13 - Functores y Polimorfismo.

En esta clase incorporamos un nuevo tipo de individuo, que tiene la particularidad de ser un individuo compuesto: el functor.

Un concepto importante que surgió gracias a estos simpáticos individuos fue polimorfismo.

También se puede ampliar sobre estos temas con el Módulo 3 de Lógico (pero guarda que en el medio también se explican las listas que preferimos no introducir aún).

Para ejercitar en Mumuki

Ya pueden trabajar con Mumuki hasta la guía 9 inclusive.

Trabajos Prácticos

Para el jueves 19/8 tienen que resolver el TP3 que consta de 2 ejercicios. Son los ejercicios 5 y 6 de la Guía de TPs de Lógico.

Clase 12 - Práctica Existencia, Negación, Para Todo

Link al enunciado: TEG

Clase 11 - Orden Superior

En esta clase introdujimos los predicados de orden superior:

  • not/1 para la negación

  • forall/2 para el cuantificador universal (para todo)

De esa forma cubrimos todo lo relacionado con existencia (no hace falta usar ningún predicado especial para esto), no existencia y para todo, que es lo que nos faltaba para poder trabajar con lógica de primer orden.

También vimos que ambos predicados tienen problemas de inversibilidad, con lo cual hay que tomar ciertos recaudos al usarlos para que nuestros predicados sean inversibles.

También se puede ampliar sobre estos temas con el Módulo 4 de Lógico (hasta sección 4 inclusive).

Para ejercitar en Mumuki

Pueden profundizar los temas vistos con estas guías:

  • Guía 3: Negación y Cuantificación

  • Guía 4: Práctica Negación y Cuantificación

  • Guía 7: Práctica Inversibilidad

Trabajos Prácticos

Para el jueves 15/7 tienen que resolver el TP2 que consta de 2 ejercicios. Son los ejercicios 3 a 4 de la Guía de TPs de Lógico.

Clase 10 - Intro a Lógico

En esta clase arrancamos con el Paradigma Lógico de la mano del lenguaje Prolog.

Acá pueden encontrar una introducción al paradigma que sienta las bases de cómo trabajar, y cómo se resuelven con estas herramientas básicas la conjunción y disyunción. Hasta ahora trabajamos sólo con individuos simples (átomos y números).

Uno de los temas que introdujimos en esta clase es uno de los puntos fuertes de este paradigma y es el concepto de inversibilidad, lo cual permite hacer consultas con múltiples respuestas. Profundizaremos más adelante el tema de inversibilidad.

Resumen de nomenclatura <-- Repasar esto si no recordás a qué nos referimos al decir predicado, hecho, regla, cláusula, aridad, consulta, individuo, átomo...

También se puede ampliar sobre estos temas con el Módulo 1 y el Módulo 2 de lógico.

Para ejercitar en Mumuki

Pueden profundizar los temas vistos con estas guías:

  • Guía 1: Hechos y Reglas

  • Guía 2: Práctica Hechos y Reglas

  • Guía 5: Aritmética

  • Guía 6: Inversibilidad

Tengan en cuenta que las guías de Mumuki introducen inversibilidad más tarde, por eso para la práctica de la guía 7 sólo están en condiciones de abordar hasta el ejercicio 10 inclusive.

Trabajos Prácticos

Para el jueves 8/7 tienen que resolver el TP1 que consta de 2 ejercicios. Son los ejercicios 1 a 2 de la Guía de TPs de Lógico.

Paradigma Funcional

Clase 9 - Práctica: Gimnasio

En esta clase resolvimos la última práctica integradora de funcional: Gimnasio.

Clase 8 - Estrategias de Evaluación

En esta última clase teórica de funcional vimos Estrategias de Evaluación:

  • Evaluación Ansiosa vs. Evaluación Perezosa

  • Listas infinitas

También se puede ampliar sobre estos temas con el Módulo 4 de funcional.

Clase 7 - Práctica: Pociones

En esta clase resolvemos la práctica Pociones haciendo foco en orden superior, composición y aplicación parcial, al igual que la semana pasada, y en cuestiones de modelado con funciones e inmutabilidad.

Clase 6 - Práctica: Inmobiliaria

En esta clase resolvemos la práctica LambdaProp haciendo foco en orden superior, composición y aplicación parcial.

Clase 5 - Orden Superior y Listas

En esta clase vimos los siguientes temas:

También se puede ampliar sobre estos temas con el Módulo 5 y Módulo 6 de funcional.

Para ejercitar en Mumuki

Pueden seguir ejercitando libremente los temas vistos con las guías:

  • Práctica de Aplicación Parcial y Orden Superior

  • Práctica de Inferencia de Tipos, Recargada

  • Práctica de Listas

  • Práctica Recursividad

  • Dominar el mundo con nada <- tiene algunos ejercicios interesantes para usar fold

Trabajos Prácticos

Para el jueves 20/5 tienen que resolver el TP4 que consta de 4 ejercicios. Son los ejercicios 8 a 11 de la Guía de TPs de Funcional.

Clase 4 - Composición y Aplicación Parcial

En esta clase vimos los siguientes temas:

También se puede ampliar sobre estos temas con el Módulo 2 de funcional.

Para ejercitar en Mumuki

Pueden profundizar los temas vistos con las guías:

  • Introducción a tipos de dato y su práctica asociada.

  • Aplicación Parcial y Orden Superior (Ejercicios 1 al 4 inclusive).

  • Práctica Aplicación Parcial y Orden Superior (hasta ejercicio 6).

Además pueden revisitar cualquier ejercicio que hayan salteado o dejado en amarillo de guías anteriores que pidieran usar composición.

Trabajos Prácticos

Para el jueves 13/5 tienen que resolver el TP3 que consta de 2 ejercicios. Son los ejercicios 6 y 7 de la Guía de TPs de Funcional.

Clase 3 - Tipos complejos

En esta clase se abarcan los siguientes temas:

También se puede ampliar sobre data, tuplas y type alias con el Módulo 3 de funcional, y sobre guardas en el Módulo 1 de funcional.

Para ejercitar en Mumuki

Pueden profundizar estos temas con las guías:

  • Alternativas: Guardas y Patrones

  • Modelado (hasta ejercicio 13)

Trabajos Prácticos

Para el jueves 6/5 tienen que resolver el TP2 que consta de 2 ejercicios. Son los ejercicios 4 y 5 de la Guía de TPs de Funcional.

Clase 2 - Introducción a Funcional

En esta clase arrancamos con el paradigma funcional, para el cual usaremos el lenguaje Haskell, y vimos los siguientes temas:


  • Concepto de función

    • Cumplen con unicidad y existencia, esto nos permite asegurar que luego de aplicar una función obtendremos siempre un único valor.

    • Tienen transparencia referencial

    • Las variables son incógnitas como las de matemática, no pensarlas como posiciones de memoria, no se pueden asignar.

    • Su principal operación: la aplicación.

  • Pattern Matching con tipos básicos

  • Introducción a Tipado:

    • Tipos de datos simples (Int, Float, Bool, ...).

    • Entender de qué tipo son las funciones, en base al tipo de su dominio y de su imagen.

    • Tipos genéricos (variable de tipo) y noción de de Typeclass

También se puede ampliar con el Módulo 1 de funcional (todo menos guardas) y en la sección "Clasificando tipos" del Módulo 7 se explica más sobre Typeclasses (obviar los tipos compuestos, tuplas y listas, que todavía no vimos).

Para ejercitar en Mumuki

Pueden profundizar los temas vistos con las guías:

  • Valores y Funciones

  • Práctica Valores y Funciones

  • Introducción a Tipos de Datos

  • Práctica de Inferencia de Tipos

Nota: todavía no vimos composición, vale saltear los ejercicios que requieran haber visto ese tema.

Trabajos Prácticos

Para el jueves 29/4 tienen que resolver el TP1 que consta de 3 ejercicios. Son los ejercicios 1, 2 y 3 de la Guía de TPs de Funcional.

En esta misma guía incorporaremos gradualmente nuevos ejercicios para los TPs siguientes.

Clase 1 - Introducción a la materia