BitƔcora de clase JN 2017
Colecciones, Bloques, Excepciones. Herencia. + TP Objetos
En estas últimas 2 clases incorporamos nuevas herramientas de trabajo muy útiles para hacer programas mÔs grandes y complejos:
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. Finalmente, ya estÔ publicada la siguiente entrega del TP de objetos, para la cual se espera que sigan trabajando en grupo, aprovechen las herramientas de trabajo y consulten con sus tutores ante cualquier duda. |
Clase de clases + TP de objetos
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. Como se mencionó en clase, lo mÔs conveniente para trabajar en grupo es usar un repositorio de código para poder compartir y versionar su código. Qué necesitan hacer todos los integrantes para poder trabajar de esta forma y obtener un repositorio privado de GitHub con el código de base para el TP al cual nosotros ya tengamos acceso para ver su trabajo:
Si bien el uso del repositorio es opcional para la aprobación del TP, usarlo no sólo facilita la colaboración sino también la corrección, ya que todos los tutores podemos acceder a los repositorios. Pueden aprovechar también los issues que pueden crearse desde el repositorio de github como herramienta de comunicación con sus compañeros de grupo y con el tutor cuando tienen dudas sobre la solución a la que llegaron. UPDATE: El proyecto se va a crear con el nombre TP_PdeP_JN_Gxx, cuando lo clonen en Wollok pueden renombrarlo cambiando las xx del final por el número de grupo correspondiente seleccionando el proyecto y usando la opción Refactor -> Rename. Luego de hacer eso, commitean y pushean al repositorio para que quede para todos. |
Intro a Objetos
Arrancamos con el tercer y Ćŗltimo paradigma de la materia: Objetos, el cual llevaremos a la prĆ”ctica con el lenguaje Wollok. Los temas que vimos fueron:Tambien se habló sobre Testeo unitario (por lo menos hasta la sección 7 no se van a topar con nada que no hayamos visto), que van a tener que aplicar en el trabajo prĆ”ctico que estarĆ”n disponible desde la semana que viene. 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. |
Listas, recursividad y findall/3
En esta clase cerramos los conceptos de este paradigma luego de incorporar: Con esto pueden terminar las guĆas de lógico, en particular: TambiĆ©n les dejo algunas recomendaciones para evitar malos usos de findall: |
Paradigma lógico: introducción + existe vs para todo
Arrancamos con el Paradigma Lógico para el cual estaremos usando el lenguaje Prolog y vimos los siguientes temas en las primeras dos clases:
Con esto ya cubrimos casi todos los temas del paradigma. Aprovechen las guĆas de Mumuki para repasar y practicar, las primeras 7 guĆas cubren todo lo que vimos. Como es un montón, les recomendamos en particular los siguientes ejercicios: Sobre el trabajo prĆ”ctico: Por los ajustes de cronograma que tuvimos que hacer, el trabajo prĆ”ctico para este paradigma no va a estar compuesto por mĆ”s de una entrega. La fecha de entrega oficial es la que se encuentra actualmente en el cronograma. El enunciado del TP estĆ” dividido en 3 partes:
Con lo visto ya pueden trabajar sobre las primeras dos partes. Al igual que para el TP pasado, les proveemos el código de base que pueden descargar acÔ para que puedan probar la lógica que desarrollan. El readme y el mismo archivo de pruebas tiene explicaciones sobre cómo completarlo, con suerte no traerÔ problemas, pero si tienen dudas pregunten. |
Estrategias de evaluación. Typeclasses. Inferencia de tipos.
En esta clase cerramos la teorĆa de funcional hablando de:
Pueden simplemente agregar esto a los archivos sobre los que estaban trabajando para la primer entrega y seguir trabajando. |
Composición, aplicación parcial y expresiones lambda
En esta clase vimos los siguientes temas: En Mumuki, composición es un tema que se aborda desde el principio, con lo cual tal vez quieran volver sobre algĆŗn ejercicio que les haya quedado amarillo por no aplicar ese concepto.Ā Sobre aplicación parcial, tienen la guĆaĀ Aplicación Parcial y Orden SuperiorĀ y los primeros 6 ejercicios de laĀ prĆ”ctica asociada. Y tambiĆ©n estĆ” la guĆaĀ Expresiones Lambda. |
Orden Superior
En esta clase vimos uno de los temas fuertes de la materia, sobre el cual vamos a volver una y otra vez a lo largo del aƱo, que esĀ Orden Superior. Pueden complementar lo visto con la guĆa deĀ Listas. TambiĆ©n para ejercitar ahora sĆ pueden encarar la guĆaĀ PrĆ”ctica ListasĀ completa al igual que la deĀ PrĆ”ctica Aplicación Parcial y Orden Superior, y ademĆ”s como vimosĀ foldĀ tambiĆ©n pueden resolver la guĆaĀ Dominar el mundo con nadaĀ que los va a pasear por diversos usos de esta familia de funciones. Si a lo largo de la resolución de ejercicios de Mumuki les pide resolverlos con aplicación parcial y/o composición, ignoren eso por ahora, luego de la próxima clase en la cual se incorporen estos conceptos pueden iterar esos ejercicios nuevamente para aplicar esas ideas. IMPORTANTE: TP grupal Ya estĆ”n en condiciones de arrancar a trabajar sobre laĀ primer entrega del TPĀ (la fecha de entrega como indica el cronograma es el 11/05).Ā Recuerden que pueden sacarse dudas sobre el TP mandando mail a su tutor asignado, copiando en el mismo al resto de su grupo. El TP alcanza con que se lo manden a su tutor por mail, si llegan a terminarlo antes de la fecha de entrega, aprovechen para mandĆ”rselo con mĆ”s tiempo para que su tutor pueda verlo ni bien pueda y tener mĆ”s tiempo de realizar las correcciones que sean necesarias. El TP que le envĆan a su tutor debe incluir un archivo con la solución y otro con las pruebas, tomando como punto de partida el siguiente código de base. El readme deberĆa ser suficientemente autoexplicativo respecto a quĆ© se espera que hagan en cada archivo, pero ante la duda, contacten a su tutor. |
Tipos de datos compuestos
En esta clase agregamos a nuestro conjunto de herramientas los tipos de datos compuestos: Listas, tuplas y datas. TambiĆ©n vimos cómo definir alias de tipos usando type, para simplificar la declaración de los tipos de funciones y datas que los usen. Otro tema importantĆsimo que surgió en esta clase es la idea de inmutabilidad, debido a la ausencia de efecto colateral en este paradigma. Pueden repasar los temas vistos en los siguientes artĆculos:
TambiĆ©n estĆ”n disponibles las siguientes guĆas de Mumuki que tratan los temas vistos: Tuplas: Listas y recursividad Tuplas, Type y Data - con foco en inmutabilidad Ejercitación para la próxima clase (dentro de 2 semanas debido al paro general y semana santa): |
Introducción a Funcional (continuación)
En esta clase trabajamos un poco mƔs con el paradigma funcional, los temas vistos hasta ahora fueron:
Las lecciones interactivas teóricas que cubren los temas vistos en esta clase son las siguientes: TambiĆ©n pueden ejercitar libremente con la primer guĆa prĆ”ctica:Ā PrĆ”ctica Valores y Funciones. Si algĆŗn ejercicio les pide usar composición (tema que veremos mĆ”s adelante), pueden sólo ignorar eso y resolver lo que se pide con lo que vimos hasta ahora. Ejercitación para el miĆ©rcoles que viene Vamos a arrancar la próxima clase poniendo en comĆŗn resoluciones hechas por ustedes para los siguientes ejercicios a modo de repaso de los temas vistos en la Ćŗltima clase. Los ejercicios para esta primer prĆ”ctica son los siguientes:
|