====== Algoritmos y Estructuras de Datos II - 2022 ====== ===== Docentes ===== * Teórico/práctico: Emmanuel Gunther, Franco Luque, Martín Vilela, Alejandro Gadea. * Laboratorio: Leandro Ramos, Marco Rocchietti, Santiago Ávalos, Ariel Fiuri, Gonzalo Zigaran, Juan Cabral, César Alvarez Vallero, Luigi Finetti ===== Horarios y Modalidad ===== * Teórico/práctico: * Lunes de 14 a 18 hs presencial. Aula A2 ([[https://goo.gl/maps/pRdbGqkqUKMx98G28|baterías A]]). * Miércoles de 15 a 18 hs virtual: [[https://meet.google.com/yxc-spbt-cch]] * Laboratorios: Martes y Jueves de 14 a 18 hs. * Formulario de inscripción: [[https://forms.gle/uWe9VR6yBScQC3sr5]] ===== Fechas importantes ===== Primer parcial: * Teórico/práctico: lunes 02/05. * Laboratorio: martes 26/04 y jueves 28/04. Segundo parcial: * Teórico/práctico: lunes 13/06. * Laboratorio: jueves 02/06 y martes 07/06. Recuperatorio: * Teórico/práctico: lunes 27/06. ===== Acerca de... ===== * [[algo2:main:2022:acercade#objetivos|Objetivos]] * [[algo2:main:2022:acercade#programa|Programa]] * [[algo2:main:2022:acercade#regimen_de_aprobacion_promocion_y_regularidad|Régimen de aprobación, promoción y regularidad]] ===== Teórico/Práctico ===== * Grabaciones de clases virtuales: https://drive.google.com/drive/folders/1MrYFSyDcdwJ2P8sdAxkZWHI9djf4QZCZ * Introducción al lenguaje de programación del teórico/práctico * Pizarra: https://docs.google.com/document/d/1Az-VgJgdWxDttgJbk2hQHk22aFY96wblgIsIad5hBVE/edit?usp=sharing * Primera parte: Análisis de Algoritmos. * {{ :algo2:main:01.ordenacion.elemental.pdf |Ordenación elemental}} * Guía de ejercicios: {{ :algo2:main:practico.01.ordenacion.elemental.pdf |Práctico 1.1.}} * {{ :algo2:main:02.ordenacion.avanzada.pdf |Ordenación avanzada}} * Video: [[https://www.youtube.com/watch?v=IpHuceXgz88|Idea del Merge Sort]] * Texto: {{ :algo2:main:explicacion_mergesort.pdf | Implementación del Merge Sort}} * Video: [[https://www.youtube.com/watch?v=a3INgs0D5us|Idea del Quick Sort]] * Texto: {{ :algo2:main:explicacion_quicksort.pdf | Implementación del Quick Sort}} * Guía de ejercicios: {{ :algo2:main:practico.02.ordenacion.avanzada.pdf |Práctico 1.2.}} * {{ :algo2:main:03.recurrenciasDyV.y.jerarquia.pdf | Recurrencias y jerarquía de funciones }} * Video: [[https://www.youtube.com/watch?v=rQxUUjNBhd8|Recurrencias Divide y Vencerás - Parte 1]] * Video: [[https://www.youtube.com/watch?v=n5D1KExw30Y|Recurrencias Divide y Vencerás - Parte 2]] * Guía de ejercicios: {{ :algo2:main:practico.03.recurrenciasDyV.pdf |Práctico 1.3.}} * Segunda parte: Tipos y Estructuras de Datos. * {{ :algo2:main:04.tipos.concretos.pdf |Tipos concretos}} * Video: [[https://www.youtube.com/watch?v=1cCCyyPPsck|Tipos Concretos - Parte 1]] * Video: [[https://www.youtube.com/watch?v=WPhYihSXWws|Tipos Concretos - Parte 2]] * Guía de ejercicios: {{ :algo2:main:2020.04.practico.pdf |Práctico 2.1.}} * {{ :algo2:main:05.tipos.abstractos.pdf |Tipos Abstractos de Datos}} * Video: [[https://youtu.be/f2EXztXim_4|Introducción a TADs - Parte 1]] * Video: [[https://youtu.be/0P-T-43s2HM|Introducción a TADs - Parte 2]] * Guía de ejercicios: {{ :algo2:main:practico.05.tads.pdf |Práctico 2.2.}} * {{ :algo2:main:06.tipos.abstractos.2.pdf |TADs: Pila y Cola}} * Video: [[https://youtu.be/_QH9IY90JZE|Pilas y Colas]] * Guía de ejercicios: {{ :algo2:main:practico.06.tads2.pdf |Práctico 2.3.}} * {{ :algo2:main:07.tipos.abstractos.abb.pdf |TADs: Árboles Binarios}} * Video: [[https://youtu.be/yxseXEN3qc0|Árboles Binarios]] * Referencia: [[https://docs.google.com/document/d/14Zafjxh-t9PB2gO7TCDtBLmKrKdAizhMSg2LCZWW0ug/edit#|Especificación completa de los TADs List y Set]] * Tercera parte: Técnicas de resolución de problemas. * {{ :algo2:main:08.algoritmos.voraces.pdf | Algoritmos voraces}} * Video: [[https://youtu.be/b9Hw6yueSXQ|Algoritmos voraces - Parte 1]] * Video: [[https://youtu.be/DbUN8gkQzO4|Algoritmos voraces - Parte 2]] * Guía de ejercicios: {{ :algo2:main:practico.08.voraces.pdf |Práctico 3.1.}} * {{ :algo2:main:09.voraces.grafos.pdf | Algoritmos voraces sobre grafos}} * Video: [[https://youtu.be/Ya_F2MMgsTQ|Algoritmo de Prim]] * Video: [[https://youtu.be/ole3H9PmWoo|Algoritmo de Dijkstra]] * Guía de ejercicios: {{ :algo2:main:practico.09.voraces.grafos.pdf |Práctico 3.2.}} * {{ :algo2:main:10.backtracking.pdf | Backtracking}} * Video: [[https://youtu.be/MMEFM6ZQcIM | Backtracking]] * Guía de ejercicios: {{ :algo2:main:practico.10.backtracking.pdf |Práctico 3.3.}} * {{ :algo2:main:11.programacion.dinamica.pdf | Programación Dinámica}} * Video: [[https://drive.google.com/file/d/1lJmpZkmSYSmH1_6gLRvlTkopYtoQ1nkM/view?usp=sharing | Programación Dinámica]] ([[https://drive.google.com/file/d/1CgydgQ5r3G_XvqUmT0pVIRjFV_2Rz5Ms/view?usp=sharing|chat]]) * Guía de ejercicios: {{ :algo2:main:practico.11.programacion.dinamica.pdf |Práctico 3.4.}} * {{ :algo2:main:12.recorrida.grafos.pdf | Recorrida de grafos}} ---- ===== 💻 Laboratorio ===== === 🔎 ¿En cuál comisión estoy? === * [[https://docs.google.com/spreadsheets/d/1Yzi1IcrQnTgwqjbM2khmp9zmLR1oC-V1J4f873bFvKQ |Asignación actual de comisiones]] /* * === 🔎 Certificados CUREE Recibidos === * * * [[ https://docs.google.com/spreadsheets/d/1ZdxLTXsF4VZS_5Y3EOS5KPCuN2YJZpWPt-XCtmXuUhw/ | Listado ]] */ === 💬 Zulip del Taller == * El canal para consultar: [[https://famaf.zulipchat.com/#narrow/stream/317900-ayed2-lab-2022|#ayed2-lab-2022]] * Si no tenés cuenta en Zulip: [[https://famaf.zulipchat.com/join/l66t6xu47hog53k3ueyc4isb/|Crear Cuenta]] (la cuenta ya se crea con la suscripción al canal efectuada) === 📜 Laboratorios === * Laboratorio 0: [[https://docs.google.com/document/d/1xaYr0f9ee2VwrP5kpQ5WVhApbgHtSEIP7BIRftFQ1sI/export?format=pdf|Enunciado]] y [[https://drive.google.com/file/d/1aL7RxXWvh-1rIzuWLgw6x6Sqj4gCvbDl/view?usp=sharing|Kickstart]] (duración: **1 semana**) * Laboratorio 1: [[https://docs.google.com/document/d/1w99o-5Yn1FoxzMIYNpWsQPJ28qjH82Elg3DescXdr2c/export?format=pdf|Enunciado]] y [[https://drive.google.com/file/d/1_UdfudqYdF6n997atqUOABCjGkjN_tgL/view?usp=sharing|Kickstart]] (duración: **1 semana**) * Laboratorio 2: [[https://docs.google.com/document/d/1zUoqjvQHeYIwI5XSFNUt6cjpH8R3zAPaqHnVuHGp5qY/export?format=pdf| Enunciado ]] y [[ https://drive.google.com/file/d/1OrONIG7Vt8LekxbRz2tOeMT5-_ivgFAX/view?usp=sharing |Kickstart]] (duración: **2 semanas**) * Laboratorio 3: [[https://docs.google.com/document/d/1EsB7uCQUWwI_RkA8QQQl8Lrm8sndtDPoX7qtfop6VQo/export?format=pdf|Enunciado]] y [[ https://drive.google.com/file/d/1rfb-oQpF30NWMNfq2hgT4yEvmBgHQKdX/view?usp=sharing | Kickstart ]] (duración: **2 semanas**) * Laboratorio 4: [[https://docs.google.com/document/d/1ri0SXy_rSfxzpQvwu7SVWCFHZDadrR5UhugMbuPoMUo/export?format=pdf|Enunciado]] y [[ https://drive.google.com/file/d/1r82sMH2Z4tL0Ed0VW5yYyXtq0aHkMaAx/view?usp=sharing | Kickstart ]] (duración: **1 semana**) * Laboratorio 5: [[https://docs.google.com/document/d/1PcnGLEGUcHnL9bzSE7ndAqmLHX-c03egEBvVNGkg0m8/export?format=pdf | Enunciado]] y [[https://drive.google.com/file/d/1jYEfWbmaEZKhnMvWQkVwqaU_XKyBFdCx/view?usp=sharing|Kickstart]] (duración: **2 semanas**) * Laboratorio 6: [[https://docs.google.com/document/d/1KpqgfW5U47pD9CitBk81zHPreApL6kkFrKA_10WDZwg/export?format=pdf| Enunciado]] y [[https://drive.google.com/file/d/1xqhmoqfIqhm2sHdjFYJe43daAD9Jnmnr/view?usp=sharing|Kickstart]] (duración **2 semanas + ε**) * Laboratorio 7 : [[https://docs.google.com/document/d/1IzjuLWskZmAxBYWgkQ1tbQbk2kLjBP1Bnz6jA3RTPKc/export?format=pdf| Enunciado]] y [[https://drive.google.com/file/d/1l0ymfpDtB0xTVKC93S5aT2B-2PvcPDfg |Kickstart]] (duración **1 clase + ε**) Para entregar un laboratorio X se debe completar el siguiente [[ https://forms.gle/xJ3hDqB4P4GthzH68 |formulario de entrega]]. | 💡 | Se pueden realizar __múltiples entregas__ del mismo laboratorio, pero se toma **la última como la definitiva** | ^ ❗ ^ No incluir en la entrega archivos PDF con el enunciado ni los archivos compilados (ni ejecutables ni objetos) ^ === 📅 Agenda del Taller === * **03/05**: Parcial 1 - Comisión Martes * **28/04**: Parcial 1 - Comisión Jueves * **2/06**: Parcial 2 - Comisión Jueves * **7/06**: Parcial 2 - Comisión Martes * **28/06**: Recuperatorio === Resultados del Taller === * Condiciones finales en el Taller: [[https://docs.google.com/spreadsheets/d/1dSJeUB_QXPfuEVdX77f2wALbwCyFSJXtmveTgFxPffI/edit#gid=0|Planilla]] === 📼 Videos === | 🏁 **Introducción a C** | [[ https://drive.google.com/file/d/1km9T42sQFhwyqgxanZ2hYrl5dC1wCHjg/view?usp=sharing | sintaxis, funciones, gcc, etc... ]] | [clase virtual algoritmos1-2021] | | ::: | [[ https://drive.google.com/file/d/1w-Tjhh714eZIxVcdhc7nRC_-ZqKboNxX/view?usp=sharing | aserciones, arreglos, estructuras... ]] | [clase virtual algoritmos1-2021] | | 🔄 **Repaso de C** | [[ https://drive.google.com/file/d/1nQt1wncs7lwlVmGq7BPgstxKQYJz5XaP/view?usp=sharing |Hola Mundo!]] [reproducir a 1.5x 😉] | [clase virtual algoritmos2-2021] | | 📦 **Usando ''tar''** | [[https://drive.google.com/file/d/1InnQ1DeLvVkIzINSF5PMYXji-HTFZfzs/view | Comprimir archivos ]] | [clase virtual algoritmos2-2021] | | 👨🏻‍🏫 **Presentación Lab01** | [[ https://drive.google.com/file/d/1557CeAOlNpuw9p0FhCZzsZi3PJ-RsGPB/view?usp=sharing|Objetivos]], [[ https://drive.google.com/file/d/1QzEHa5oKsznD4tJqlvfmEyKPi-POHQ2i/view?usp=sharing|ej1]], [[https://drive.google.com/file/d/1amKDXPHqGtyFzwJKPrGtR5f3zyv18voi/view?usp=sharing |ej2]], [[ https://drive.google.com/file/d/1KaXQh8mNfL3y7eylcLL0VFspX2AP17hi/view?usp=sharing|ej3]], [[ https://drive.google.com/file/d/1DTzDOFnzmT7HXqc9yuV4hARJMvicAv1G/view?usp=sharing|ej4]], [[ https://drive.google.com/file/d/1LfQYS2HJ1fQXpKBCC4AT5IjpQVvi189M/view?usp=sharing|ej5]], [[ https://drive.google.com/file/d/1G-fmb6Js8Gu0J1eEXQxhYfw9jvdUpZcD/view?usp=sharing|ej6]] | [comisión Jueves] | | 👨🏻‍🏫 **Cierre Lab00** | [[ https://drive.google.com/file/d/1R6bfSGCDaUx0IYZDfNyOgde6HedoDApB/view?usp=sharing| Intro]], [[https://drive.google.com/file/d/1nb1hOyUU0NR4IV03XDvfhDqyuJcWiwxp/view?usp=sharing |ej1]], [[https://drive.google.com/file/d/1QvTpCSms9Yc7RV_2DX90GG1z8o4za4AP/view?usp=sharing |ej2]] | [comisión Jueves] | | 🕷 **GDB** (GNU debugger) | [[ https://www.youtube.com/watch?v=gaIcpmOYGu81| Tutorial]] [[ https://drive.google.com/open?id=1XSperdoS3aue-omF06fgnaS7cFHHhNmR| Filminas ]] [[https://wiki.cs.famaf.unc.edu.ar/lib/exe/fetch.php?media=algo2:main:gdb_cheatsheet.pdf| Cheet Sheet ]] | [clase virtual algoritmos2-2020] | | ::: | [[ https://www.youtube.com/watch?v=eZyybmh5QJg | Ejemplo práctico ]] | [clase virtual algoritmos2-2020] | | 👨🏻‍🏫 **Presentación Lab03** | [[ https://drive.google.com/file/d/1GSkPzdM3GcU1xdCFfMGf5QkQScWtA7qu/view?usp=sharing | Objetivos ]] [[ https://drive.google.com/file/d/1Y1PEuxZbQoQb8vc8rUZsc7RvQXs3AP-T/view?usp=sharing | ej0]] || | ::: | **Tipos Concretos en C**: [[ https://drive.google.com/file/d/1V2DwP8Q324BYJllB2N8nXl_H8u7zo_6H/view?usp=sharing| Intro]] [[ https://drive.google.com/file/d/1Ob_e0s66657Q5rTrR7XZtnZoAWtDYRUN/view?usp=sharing | Nativos]] [[ https://drive.google.com/file/d/1GG_pQw3sjHrHDT6j4SP28vAbc-pH6VQK/view?usp=sharing | Enumerados]] [[ https://drive.google.com/file/d/1YQA6rDnspZtyuAv9TZmC22nVU5Lk6orS/view?usp=sharing | Tuplas ]] [[ https://drive.google.com/file/d/1isy4128ylOnwJy3bXYljj1zXSnAVCn9D/view?usp=sharing | Arreglos ]] [[ https://drive.google.com/file/d/1hLf9R9Q7ar-cssi3ODQeo1QyzCGaGy1v/view?usp=sharing | Punteros]] || | ::: | [[ https://drive.google.com/file/d/1YdpKmm5OH8uwLEmP4d9oelBuIOfEevpR/view?usp=sharing | ej1-a]] [[ https://drive.google.com/file/d/1pFX0Ia9-TNqYNaycK3k7evoTL3USVk-O/view?usp=sharing | ej1-b ]] [[ https://drive.google.com/file/d/1sFsC50JSlBj3HyFiRLxUTWeHj6IYncmV/view?usp=sharing | ej2 ]] [[https://drive.google.com/file/d/1_Q4S5t2oLcfAsbMngshKXNn8Mt6ZvrEf/view?usp=sharing | ej3]] [[ https://drive.google.com/file/d/19a2hfgnZMfa-spxeMJ7PVFERE_LKJV4u/view?usp=sharing | ej4]] [[ https://drive.google.com/file/d/1PserlOgF35RG5NKlyhYdwFPtkKv78elZ/view?usp=sharing | ej5]] || | 📡 **Valgrind** | Usando ''valgrind'' para [[ https://drive.google.com/file/d/1lOMzw5y4JckIspdyG8BODx2F86vPWhvP/view| detectar memory leaks]] | [Christian Moreno - 2021] | | 👨🏻‍🏫 **Clase 17/05** | [[ https://drive.google.com/file/d/1eTpOvBOSDQTc8fb4rsH0YfdNFUiU9xhD/view?usp=sharing| Primera Parte]] y [[https://drive.google.com/file/d/1PTDP9Xf1MAs6Hn6HteSh7kih9GXWeT69/view?usp=sharing|Segunda Parte]] | [clase virtual] | | 👨🏻‍🏫 **Clase Consulta 30/05** | [[https://drive.google.com/file/d/17bsjq7AutCO8GFsYS3NcVgkfR777W_zq/view?usp=sharing | Clase ]] | [clase virtual] | === 📎 Material complementario === * ⚙️ Compilando con ''make'': [[https://drive.google.com/file/d/1JPXK514a2WQZo5Ym5T-s3FlgkPam8m-B/view?usp=sharing| Filminas]] * 🌲 Operaciones de Árboles Binarios de Búsqueda en forma recursiva (𝝺): [[https://docs.google.com/presentation/d/1XrIDTOimClWEDR6dIV-_WEfkRai-hstlMbqHRQYhz48/edit?usp=sharing|Filminas]]