====== 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]]