Contenido temático Desarrollo temático

Anuncio
UNIVERSIDAD NACIONAL AUTÓNOMA
DE MÉXICO
LICENCIADO EN CIENCIAS DE LA COMPUTACIÓN
Programa de la asignatura: Análisis de Algoritmos I
Clave:
Semestre:
Campo de conocimiento:
Área de formación:
*
5
Ciencias de la Computación
Computación teórica
Linea terminal:
Horas por
Horas
Total de horas
Diploma
semana
Créditos:
Teo
T/P
Prác
10
3
4
0
7
112
Tipo:
Modalidad:
Carácter:
Teórica
Curso
Obligatoria
Seriación indicativa antecedente: Modelado y Programación, Gráficas y Juegos,
Probabilidad I y Álbegra Lineal I.
Seriación obligatoria antecedente: Gráficas y Juegos, Álgebra Superior II, Estructuras de
Datos, Matemáticas para las Ciencias de la Tierra I.
Seriación indicativa subsecuente: Complejidad Computacional, Compiladores,
Inteligencia Artificial y Sistemas Operativos.
Objetivo General: El alumno conocerá los conceptos de complejidad, justificación, análisis y diseño de
algoritmos. Para desarrollar estos temas se revisan algoritmos de búsqueda, ordenamiento y algoritmos
que involucran gráficas.
Contenido temático
Unidad
1
2
3
4
5
Tema
Conceptos básicos
Justificación y diseño de algoritmos
Algoritmos que involucran secuencias y conjuntos
Algoritmos para teorı́a de gráficas
Temas selectos
Total de Semanas
Semanas
1.5
3.5
5.0
3.0
3.0
16.0
Desarrollo temático
1. Conceptos básicos
En este apartado se presentan la notación para presentar los algoritmos y se definen los
conceptos y notación básicos para su representación y análisis. Ası́ mismo se introducen
estrategias importantes de diseño, como divide y vencerás.
1.1. Problemas y algoritmos
1.2. Tipos de problemas
1.3. Complejidad
1.4. Modelos de cómputo
1
2. Justificación y diseño de algoritmos
En esta sección se presentan los fundamentos matemáticos necesarios para realizar
análisis de algoritmos, además de técnicas de diseño como divide y vencerás o programación dinámica. Es importante aclarar que el estudiante debe poder mostrar que un
algoritmo resuelve un problema y cuál algoritmo de entre varios es mejor con respecto
a una medida.
2.1. Notación asintótica
2.2. Algoritmos iterativos
2.3. Algoritmos recursivos
2.4. Diseño de algoritmos
3. Algoritmos que involucran secuencias y conjuntos
En este apartado trabajamos con el concepto de conjunto, pero desde la visión del
computólogo, como una entidad que puede ser manipulada por algoritmos, que puede
crecer o encogerse, que es dinámico. Abordamos además otros algoritmos y conceptos
importantes para secuencias de datos.
3.1. Diccionarios
3.2. Árboles binarios
3.3. Búsquedas
3.4. Ordenamientos
3.5. Cota mı́nima de ordenamiento
4. Algoritmos para gráficas
Al igual que en el apartado anterior, en este atacamos otro concepto matemático desde la visión del computólogo, en este caso la gráfica, como una estructura de datos
fundamental. Revisamos los algoritmos más significativos sobre gráficas y redes.
4.1. Árboles generadores
4.2. Árboles generadores de peso mı́nimo
4.3. La ruta más corta
4.4. Teorı́a de redes
5. Temas selectos
En la última sección del curso presentamos diversos algoritmos de propósito especı́fico,
ası́ como áreas de computación relacionadas con el análisis de algoritmos. Dependiendo
del tiempo disponible se presentan con distintos niveles de profundidad.
5.1. Algoritmos determinı́sticos y no-determı́sticos
5.2. Algoritmos para apareamiento de cadenas
5.3. Geometrı́a computacional
5.4. Algoritmos de aproximación
5.5. Calendarización
2
Sugerencias didácticas:
Exposición oral
Exposición audiovisual
Ejercicios dentro de clase
Ejercicios fuera del aula
Seminarios
Lecturas obligatorias
Trabajo de investigación
Prácticas de taller o laboratorio
√
( )
(√)
( )
( )
( )
( )
(√)
( )
Otras:
( )
Mecanismos de evaluación del aprendizaje:
√
Exámenes parciales
( )
Examen final escrito
(√)
Trabajos y tareas fuera del aula
(√ )
Prácticas de laboratorio
( )
Exposición de seminarios por los
( )
alumnos
√
Participación en clase
( )
Asistencia
( √)
Proyectos de programación
( )
Proyecto Final
( )
Otras:
( )
BIBLIOGRAFÍA BÁSICA:
1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest y Clifford Stein
“Introduction to Algorithms”, MIT Press, Third Edition, 2009.
2. Jon Kleinberg y Éva Tardos
“Algorithm Design”, Addison Wesley, 2005.
BIBLIOGRAFÍA COMPLEMENTARIA:
1. Steven S. Skiena
“The Algorithm Design Manual ”, Springer, 2nd Edition, 2008.
2. Sanjoy Dasgupta, Christos Papadimitriou y Umesh Vazirani
“Algorithms”, McGraw-Hill, 2006.
3. Henry S. Warren
“Hacker’s Delight”, Addison-Wesley Professional, 2002.
4. Ronald L. Graham, Donald E. Knuth y Oren Patashnik
“Concrete Mathematics: A Foundation for Computer Science”, Addison-Wesley Professional, 2nd
Edition, 1994.
3
Descargar