115841 Análisis y Diseño de Algoritmos
Trimestre 2010 Invierno

Instructor: Dr. Francisco Javier Zaragoza Martínez.
Inicio y fin del curso: lunes 11 de enero a viernes 26 de marzo de 2010.
Grupo: CMC01 (lunes, miércoles y viernes de 16:00 a 17:30).
Asesorías: lunes, miércoles y viernes de 10:00 a 11:30 en la oficina H-264.
Salón: MCC.
Cupo: 25 estudiantes.

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. Introducción al análisis de algoritmos.
  2. Recursión.
  3. Algoritmos de exploración.
  4. Árboles generadores mínimos.
  5. Distancia.
  6. Flujo de redes.

Evaluación

Habrá 10 tareas teóricas y de programación en C o C++. Cada tarea valdrá 10 puntos. Se requiere obtener
Las tareas teóricas se deberán entregar en PDF (hecho en LaTeX, OpenOffice o algún otro procesador de texto) por correo electrónico a la cuenta franz en correo.azc.uam.mx y los programas se deberán entregar en gcc, g++ o gcj a la cuenta ada en callix.azc.uam.mx. Su cuenta está en la misma máquina, a la que se pueden conectar con ssh y que tiene dirección IP 148.206.79.29. 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. Usaremos el libro de Dasgupta, Papadimitriou y Vazirani y el libro de Parberry (ambos se pueden descargar legalmente de las páginas de los autores). Los números de sección se refieren a la versión publicada del libro de Dasgupta. Los números de ejercicio se refieren a la versión preliminar del libro de Dasgupta.

Bibliografía

  1. Baase y Van Gelder. Algoritmos computacionales: Introducción al análisis y diseño. Addison Wesley.
  2. Bentley. Programming Pearls. Addison Wesley.
  3. Berlioux y Bizard. Algorithms. Wiley.
  4. Cormen, Leiserson, Rivest y Stein. Introduction to Algorithms. Mc Graw Hill. [Libro de texto.]
  5. Dasgupta, Papadimitriou, Vazirani. Algorithms. Mc Graw Hill.
  6. Even. Graph Algorithms. Computer Science Press.
  7. Folk, Zoellick y Riccardi. File Structures: An Object-oriented Approach with C++. Addison Wesley.
  8. Gregorio et al. Ejercicios de programación creativos y recreativos en C++. Prentice Hall.
  9. Kleinberg y Tardos. Algorithm Design. Addison Wesley.
  10. Kreher y Stinson. Combinatorial Algorithms: Generation, Enumeration, and Search. CRC Press.
  11. Parberry. Problems on Algorithms. Prentice Hall.
  12. Peña Mari. Diseño de programas, formalismo y abstracción. Prentice Hall.
  13. Roberts. Thinking Recursively. Wiley.
  14. Rohl. Recursion via Pascal. Cambridge.
  15. Sedgewick. Algoritmos en C++. Pearson.
  16. Sedgewick y Flajolet. An Introduction to the Analysis of Algorithms. Addison Wesley.
  17. Skiena. The Algorithm Design Manual. Telos.
  18. Skiena y Revilla. Programming Challenges. Springer Verlag.
  19. Wilf. Algorithms and Complexity. A K Peters Ltd.