AcÔ van a encontrar información relacionada con los temas vistos, ejercitación y trabajos prÔcticos. |
BitƔcora de clase - Jueves Noche 2018
Repaso conceptual de cierre
Les dejamos algunos links que les pueden ser de utilidad a la hora de preparar el final. Recuerden que pueden encontrar exÔmenes tomados en la sección de Finales.
En general deberĆan poder implementar soluciones a pequeƱos problemas en cada paradigma o mejoras sobre soluciones que se tienen como punto de partida y justificar conceptualmente. Para el final se espera que demuestren que entendieron los conceptos, y se nota mucho si frutean, asĆ que asegĆŗrense de tener en claro quĆ© es cada cosa y quĆ© ventajas y/o limitaciones tienen las soluciones desde un punto de vista conceptual para poder explicarlas. |
Clase 25 - Herencia vs Composición
En esta clase estuvimos analizando las implicancias de usar herencia y qué alternativas hay en caso de no poder o no querer recurrir a este mecanismo. Esto nos llevó a la famosa disyuntiva entre herencia y composición. En la sección de apuntes pueden leer sobre estas cuestiones de diseño en el Módulo 17. |
Clase 24 - Excepciones
En esta clase estuvimos hablando sobre excepciones, cómo usarlas, cuĆ”ndo usarlas y quĆ© hacer al respecto cuando ocurren. TambiĆ©n vimos quĆ© herramientas hay disponibles para poder testear los casos infelices, donde lo esperado es que un envĆo de mensajes resulte en un error. 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, Para profundizar
|
Clase 23 - Clases
En esta clase incorporamos una nueva herramienta de modelado: las clases. De la sección de apuntes: los módulos 7, 8 y 9 explican todo lo que vimos en esta clase. |
Clase 22 - Colecciones
En esta clase vimos dos tipos de objetos muy Ćŗtiles: Para profundizar y ejercitar
|
Clases 20 y 21 - Intro a objetos + testing
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 -> Apuntes van a encontrar los mismos módulos que estĆ”n en la pĆ”gina de la cĆ”tedra, y en 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. Para profundizar y ejercitar
Nota: Las guĆas de Mumuki de objetos que pueden encontrar en mumuki.io estĆ”n en Ruby. No las vamos a usar en la materia, pero si quieren aprender Ruby por su cuenta, son libres de hacerlo obviamente. Las guĆas de Wollok estĆ”n en construcción, esperamos poder mejoraras y complementarlas pronto. |
Clase 17 - 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:
Importante! No olvides repasar los Los Donny, no! para el uso responsable de findall. Para profundizar y ejercitar AcÔ pueden encontrar el código de esta clase.
|
Clase 15 - Functores y Polimorfismo
En esta clase incorporamos un nuevo tipo de individuo, que tiene laparticularidad de ser un individuo compuesto: el functor. Un concepto importante que surgió gracias a estos simpÔticos individuos fue polimorfismo. Para profundizar y ejercitar:
|
Clase 14 - Negación. Cuantificación Existencial y Universal.
En esta clase introdujimos los predicados de orden superior: De esa forma cubrimos todo lo relacionado con existencia, no existencia y para todo, que es lo que nos faltaba para poder trabajar con lógica de primer orden. Recuerden que ambos predicados tienen problemas de inversibilidad, con lo cual hay que tomar ciertos recaudos al usarlos para que nuestros predicados sean inversibles. En general alcanza con que los parĆ”metros de nuestros predicados lleguen unificados al consultar not/1 y forall/2, lo cual se logra consultando un predicado inversible mĆ”s arriba que ligue esas variables. Pueden profundizar estos temas leyendo de la sección de apuntes: Módulo 4 de Lógico hasta sección 4 inclusive. Con Mumuki pueden avanzar hasta la guĆa 7 inclusive. Ejercicios sugeridos:
|
Clase 13 - Intro a Lógico
En esta clase arrancamos con el Paradigma Lógico. 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, y vimos cómo se resuelven las operaciones aritmĆ©ticas en Prolog. 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. Con lo visto pueden trabajar con las dos primeras guĆas de Mumuki. Pueden profundizar tambiĆ©n leyendo de la sección de apuntes: Módulos 1 y 2 de Lógico. |