115116 Diseño de Algoritmos
112003 Temas Selectos de Ingeniería Electrónica
Trimestre 2006 Invierno
Instructor: Dr. Francisco
Javier Zaragoza Martínez.
Inicio y fin del curso: Lunes 9
de enero a viernes 24 de marzo.
Grupos: CCT81 y CYX82 (LMV de
14:30
a
16:00).
Asesorías: Lunes y
miércoles de 11:30 a 13:00 y martes de 16:00 a 17:30 en la
oficina H-264.
Salón: K-108 (lunes y
miércoles).
Laboratorio: Laboratorio de
simulación G-206 (viernes).
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.
- Conceptos fundamentales.
- Dividir y vencer.
- Programación dinámica.
- Búsqueda con retroceso.
- Métodos heurísticos.
- Programación concurrente.
Evaluación
Habrá diez evaluaciones semanales. Cada una de ellas
tendrá un valor de 10 ó 15 puntos y consistirá de
la
solución de ejercicios y problemas usando programas de
computadora bajo el ambiente Linux. Las de 10 puntos serán
tareas y las de 15 puntos serán exámenes. En cualquier
caso, se
requiere obtener:
- al menos un total de 60 puntos para acreditar con S,
- al menos un total de 73 puntos para acreditar con B y
- al menos un total de 87 puntos para acreditar con MB.
Calendario
El calendario de clases, de entrega de tareas y de evaluaciones que
muestro abajo es tentativo e irá
apareciendo paulatinamente.
- 09/01: Conceptos fundamentales.
- 11/01 y 13/01: Recursión.
- 16/01 y 18/01: Dividir y vencer I.
- 20/01: Primera evaluación semanal
(15 puntos) y respuestas.
- 23/01, 25/01 y 27/01: Dividir y vencer II.
- 30/01 y 01/02: Búsqueda con retroceso I.
- 02/02: Segunda evaluación semanal
(10 puntos, para entregar el 9 de febrero) y respuesta.
- 03/02: Tercera evaluación semanal
(15 puntos) y respuestas.
- 06/02: No habrá clase
- 08/02 y 10/02: Búsqueda con retroceso II.
- 10/02: Cuarta evaluación semanal
(10 puntos, para entregar
el 16 de febrero) y respuesta.
- 13/02 y 15/02: Programación dinámica I.
- 17/02: Quinta evaluación semanal
(15 puntos) y respuestas.
- 20/02, 22/02 y 24/02: Programación dinámica II.
- 20/02: Sexta evaluación semanal
(10 puntos, para entregar el 27 de febrero) y respuesta.
- 27/02: No hubo clase.
- 01/03 y 03/03: Métodos heurísticos I.
- 03/03: Séptima evaluación
semanal (10 puntos, para entregar el 9 de marzo) y sus códigos. Tabla con 101,
102, 103,
104 y 105
juegos.
- 06/03 y 08/03: Métodos heurísticos II.
- 10/03: Octava evaluación semanal
(15 puntos) y mejores respuestas.
- 13/03 y 15/03: Programación concurrente.
- 17:03: Novena y décima
evaluaciones semanales (25 puntos, para entregar el 28 de marzo).
- 20/03 y 22/03: No habrá clases.
- 24/03: Asesoría.
- 30/03: Calificaciones hasta el
momento
(aún no termino de calificar lo último, pero ya
entregué el acta).
- 17/04: El examen de recuperación está programado a
las 16:00 en el salón F-205.
Bibliografía
- [BB] Algorithms, Berlioux y Bizard, Wiley.
- [Be] Programming
Pearls, Bentley, Addison Wesley.
- [BV] Algoritmos
computacionales: introducción
al análisis y diseño, Baase y Van Gelder, Pearson.
- [CL] Introduction
to
Algorithms, Cormen,
Leiserson, Rivest y Stein, Mc Graw Hill.
- [GL] Ejercicios de
programación creativos y recreativos en C++, Gregorio et
al., Prentice Hall.
- [KS] Combinatorial
Algorithms: Generation, Enumeration, and Search, Kreher y Stinson, CRC
Press.
- [Pa] Problems
on Algorithms, Parberry,
Prentice Hall.
- [PM] Diseño de programas, formalismo y abstracción,
Peña
Mari, Prentice Hall.
- [Rb] Thinking Recursively, Roberts,
Wiley.
- [Rh] Recursion
via Pascal, Rohl, Cambridge.
- [Se] Algoritmos en C++, Sedgewick,
Pearson.
- [Sk] The
Algorithm Design Manual, Skiena, Telos.
- [SR] Programming
Challenges, Skiena
y Revilla,
Springer Verlag.