9515 - Algoritmos y Programación II PLANIFICACIONES Planificaciones 9515 - Algoritmos y Programación II Docente responsable: WACHENCHAUZER ROSA GRACIELA 1 de 5 Actualización: 2ºC/2016 9515 - Algoritmos y Programación II PLANIFICACIONES Actualización: 2ºC/2016 OBJETIVOS Introducir los conceptos de diseño de algoritmos y de estructuras de datos, utilizando nociones de eficiencia algorítmica para poder seleccionar la solución más adecuada para un contexto dado. CONTENIDOS MÍNIMOS - PROGRAMA SINTÉTICO Eficiencia de algoritmos. Notación O. Diseño de algoritmos: División y Conquista (métodos de búsqueda y ordenamiento, multiplicación por Karatsuba Ofman) y Teorema Maestro de la División y Conquista; Programación Dinámica; Algoritmos Golosos; resolución por Backtracking. TAD: Pilas, Colas, Conjuntos, Diccionarios, Colas de Prioridad, Grafos. Implementación de conjuntos y diccionarios mediante listas enlazadas, mapas de bits, hashing abierto y cerrado, árboles binarios de búsqueda, árboles binarios de búsqueda balanceados. Implementación de colas de prioridad mediante heaps. Más métodos de ordenamiento por comparación: el heapsort. Métodos de ordenamiento cuando hay más información sobre las claves. Algoritmos en grafos. PROGRAMA ANALÍTICO Cálculo de eficiencia, notación O. Recursividad - División y conquista - Merge sort. Quick sort - Teorema maestro - Karatsuba Ofman. Tipos abstractos de datos. Notación. Pilas. Colas. Diccionarios. Uso de TADs: Aplicaciones usando pilas, colas y diccionarios. Listas enlazadas. Pilas y Colas implementadas sobre arrays y sobre listas enlazadas. Implementaciones de diccionario I: mapas de bits, hashing cerrado, hashing abierto. Árboles binarios y sus recorridos. Árboles binarios de búsqueda. Implementaciones de diccionario II: árboles binarios de búsqueda. Árboles AVL. Implementaciones de diccionario III: Árboles AVL. Colas de prioridad. Heaps. Heapsort El ordenamiento por comparación es n log n. Métodos de ordenamiento con más información: Bin Sort, Radix Sort. Diseño de algoritmos: Programación dinámica, algoritmos golosos, backtracking. TAD Grafos. Representación con listas de adyacencia y con matriz de adyacencia. Orden topológico en grafos orientados acíclicos. Algoritmos de camino mínimo según el tipo de grafo. Algoritmo de Prim para el cálculo del árbol de tendido mínimo de un grafo no orientado. Cálculo de puntos de articulación y de componentes fuertemente conexas. BIBLIOGRAFÍA - Weiss, Mark Allen: “Estructuras de datos y algoritmos", Addison- Wesley Iberoamericana, 1995. - Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P: “Data structures and program design in C", PrenticeHall, 1997. - Brassard, Gilles; Bratley, Paul: “Algorithmics: theory and practice", Prentice-Hall, 1988. - Sedgewick, Robert: “Algorithms in C++", Addison-Wesley, 1992. - Tenenbaum, Aaron M.; Langsam, Yedidyah; Augenstein, Moshe J.: “Estructuras de datos en C", Prentice-Hall Hispanoamericana, 1993. - Kernighan, Brian W.; Ritchie, Dennis M.: “El lenguaje de programación C", Prentice-Hall Hispanoamericana, 1991. RÉGIMEN DE CURSADA Metodología de enseñanza 2 de 5 9515 - Algoritmos y Programación II PLANIFICACIONES Actualización: 2ºC/2016 La materia sera dictada en 32 clases a lo largo de 16 semanas. Cada clase estara dividida en una parte teórica y una práctica, de 1:30 hs cada una. Modalidad de Evaluación Parcial Se tomarán cuatro parciales a lo largo del curso y se deberán entregar tres trabajos prácticos grupales. 3 de 5 9515 - Algoritmos y Programación II PLANIFICACIONES Actualización: 2ºC/2016 CALENDARIO DE CLASES Semana Temas de teoría Resolución de problemas Laboratorio <1> 15/08 al 20/08 <2> 22/08 al 27/08 <3> 29/08 al 03/09 <4> 05/09 al 10/09 <5> 12/09 al 17/09 <6> 19/09 al 24/09 <7> 26/09 al 01/10 <8> 03/10 al 08/10 <9> 10/10 al 15/10 <10> 17/10 al 22/10 <11> 24/10 al 29/10 <12> 31/10 al 05/11 <13> 07/11 al 12/11 <14> 14/11 al 19/11 <15> 21/11 al 26/11 <16> 28/11 al 03/12 4 de 5 Otro tipo Fecha entrega Informe TP Bibliografía básica 9515 - Algoritmos y Programación II PLANIFICACIONES Actualización: 2ºC/2016 CALENDARIO DE EVALUACIONES Evaluación Parcial Oportunidad Semana Fecha 1º 2º 3º 4º 5 de 5 Hora Aula