UAM


1151042 Algoritmos y Estructuras de Datos
Trimestre 2015 Otoño

Instructor: Dr. Francisco Javier Zaragoza Martínez.
Inicio y fin del curso: jueves 17 de septiembre a viernes 4 de diciembre de 2015.
Grupo: CSI81 (lunes, miércoles y viernes de 14:30 a 16:00).
Asesorías: lunes, miércoles y viernes de 16:00 a 17:00 en la oficina H-264.
Salón: E309.
Cupo: 45 alumnos.

Contenido

Se cubrirá el contenido oficial del curso (el cual se detalla abajo). Es posible que el temario se cubra en un orden distinto al allí mencionado.
  1. Tipos de datos abstractos y estructuras dinámicas.
  2. Recursividad y eficiencia.
  3. Estructuras para listas.
  4. Estructuras para árboles.
  5. Estructuras para gráficas.
  6. Algoritmos de búsqueda interna.
  7. Algoritmos de ordenamiento interno.
  8. Algoritmos de procesamiento de cadenas.

Evaluación

Habrá exámenes y tareas semanales. Cada examen valdrá 4 puntos y cada tarea valdrá 6 puntos. No habrá examen global. Se requiere obtener
Las tareas se deberán entregar por correo electrónico a la cuenta aed en callix.azc.uam.mx y deberán estar escritas en C. Su cuenta está en la misma máquina, a la que se pueden conectar con ssh. Recuerden que, de acuerdo al Reglamento de Alumnos de la UAM, es falta de los alumnos en contra de la Institución el suplantar o permitir ser suplantado en la realización de actividades académicas (Artículo 9) y se impondrá desde amonestación escrita hasta suspensión por dos trimestres (Artículo 13).

Calendario

El calendario de clases, de entrega de tareas y de evaluaciones que muestro abajo es tentativo e irá apareciendo paulatinamente. He anotado los capítulos y secciones correspondientes del Sedgewick y Wayne [SW] y del Kernighan y Ritchie [KR] a la derecha de cada tema. Guía para usar su cuenta de callix.

  • 14/09: Día feriado.
  • 16/09: Día feriado.
  • 18/09: Inicio del curso. Presentación del curso y de las reglas de evaluación. Tipos de datos concretos y abstractos [SW1.1SW1.2]. Tarea 1 (para el 25/09).
  • 21/09: Memoria, apuntadores y arreglos [KR5.1-4].
  • 23/09: Aritmética de direcciones y cadenas [KR5.5-9].
  • 25/09: Estructuras, apuntadores y memoria dinámica [KR6.1-7]. Tarea 2 (para el 02/10).
  • 28/09: Conjuntos en arreglos desordenados y ordenados. Búsqueda lineal y binaria.
  • 30/09: Recursividad y eficiencia [SW1.4].
  • 02/10: Ordenamiento interno [SW2.1]: mezcla [SW2.2]. Tarea 3 (para el 09/10).
  • 05/10: Ordenamiento interno: quicksort [SW2.3].
  • 07/10: Ordenamiento interno: montículo [SW2.4].
  • 09/10: Pilas y colas estáticas [SW1.3]. Tarea 4 (para el 19/10).
  • 12/10: Día feriado.
  • 14/10: No hubo clases por paro.
  • 16/10: Pilas y colas dinámicas [SW1.3]. Tarea 5 (para el 26/10).
  • 19/10: Listas ligadas [SW3.1].
  • 21/10: Listas ligadas [SW3.1].
  • 23/10: Listas ligadas [SW3.1].
  • 26/10: Árboles binarios de búsqueda [SW3.2]. Tarea 6 (para el 04/11).
  • 28/10: Árboles binarios de búsqueda [SW3.2].
  • 30/10: Árboles binarios de búsqueda [SW3.2].
  • 02/11: Día feriado. Estaré en un evento.
  • 04/11: Árboles balanceados [SW3.3]. Notas de otro curso.
  • 06/11: Árboles balanceados [SW3.3].
  • 09/11: Gráficas [SW4.1] y Digráficas [SW4.2].
  • 11/11: Recorridos de gráficas y digráficas [SW4.1 y SW4.2].
  • 13/11: Recorridos de gráficas y digráficas [SW4.1 y SW4.2].
  • 16/11: Caminos más cortos: Algoritmo de Dijkstra [SW4.4].
  • 18/11: Árboles abarcadores: Algoritmo de Prim [SW4.3]. Unión y búsqueda [SW1.5]: Algoritmo de Kruskal.
  • 20/11: Día feriado
  • 23/11: Estaré en un evento.
  • 25/11: Examen de reposición (cualquiera de los exámenes anteriores).
  • 27/11: Caminos más cortos: Algoritmo de Warshall [SW4.4].
  • 30/11: Ordenamiento de cadenas [SW5.1].
  • 02/12: Búsqueda de subcadenas [SW5.3].
  • 04/12: Búsqueda de subcadenas [SW5.3].
  • 09/12: Daré una plática a las 10am en el W002. Último examen (3pm).
  • 10/12: Estas son las calificaciones del curso. Entregaré el acta el lunes 14 de diciembre.
  • 11/12: Aprovecho para invitarlos al Concurso de programación de la UAM 2016 (liga al concurso de 2015).
  • Bibliografía

    1. Aho, Ullman y Hopcroft. Estructuras de datos y algoritmos. Pearson.
    2. Charras y Leqroc. Handbook of Exact String Matching Algorithms. Online. King's College London.
    3. Crochemore y Rytter. Text algorithms. Online. Oxford.
    4. Harvey. Computer Science Logo Style. Volumes 1, 2, 3. MIT Press.
    5. Kernighan y Ritchie. El lenguaje de programación C. Pearson.
    6. Knuth. The Art of Computer Programming: Vol. 3 Sorting and Searching. Addison Wesley.
    7. Llana, et al. Ejercicios de programación creativos y recreativos en C++. Prentice Hall.
    8. Parlante. Linked Lists Problems. Stanford.
    9. Sedgewick. Algoritmos en C++. Pearson.
    10. Sedgewick y Wayne. Algorithms. Pearson.