Está en la página 1de 2

Facultad de Ingeniería

Escuela de ingeniería de Sistemas y Computación


FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

750094M Fundamentos de Análisis y


Diseño de Algoritmos

NÚMERO DE CRÉDITOS: 4 EVALUACIÓN


Fundamentos de Análisis y

HABILITABLE NO EXAMEN PARCIAL 1 25%


VALIDABLE SI EXAMEN PARCIAL 2 40%
PRERREQUISITOS 750084M Matemáticas Discretas II MINIPROYECTOS 30%
750085M Programación Interactiva TAREAS 5%
Diseño de Algoritmos

Objetivos
Presentar técnicas fundamentales de análisis y diseño de algoritmos que permitan comprender la
naturaleza de los problemas tan independientemente como sea posible de aspectos de
implementación (tanto hardware como software) y resolverlos eficientemente.

• Ilustrar con ejemplos el compromiso de complejidad entre espacio y tiempo usado por un
algoritmo.
• Ilustrar las etapas requeridas para la verificación de correctitud de programas.
• Conocer la clasificación estándar de problemas en clases de complejidad.
• Determinar la complejidad de algoritmos simples.
• Ilustrar con ejemplos diferentes técnicas de diseño de algoritmos tales como técnicas
voraces, ingenuas, de dividir y conquistar, programación dinámica.
• Usar e implementar tipos de datos fundamentales para la solución eficiente de
problemas, tales como tablas de hashing, árboles binarios y grafos.
• Resolver problemas utilizando búsqueda secuencial, búsqueda binaria, algoritmos de
ordenación y algoritmos fundamentales de grafos.
• Adquirir la capacidad de evaluar algoritmos, seleccionar entre varias opciones
justificando la elección e implementarlos en un lenguaje de programación.

Metodología
Las clases se dictan con videobeam o proyector de acetatos y uso del tablero.

Universidad del Valle – Facultad de Ingeniería – Escuela de Ingeniería de Sistemas y Computación


Facultad de Ingeniería
Escuela de ingeniería de Sistemas y Computación
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

Contenido
1. Introducción al diseño y análisis de algoritmos.
2. Análisis de algoritmos de ordenamiento: Heapsort, QuickSort, SelectionSort, MergeSort.
Fundamentos de Análisis y

Algoritmos de ordenación en tiempo lineal. Cotas inferiores de algoritmos de ordenación


por comparaciones.
3. Análisis de Algoritmos sobre estructuras de datos: estructuras de datos elementales
(colas, pilas, listas, árboles), tablas de hashing, árboles binarios de búsqueda, árboles
rojinegros.
4. Estrategias algoritmicas: técnicas ingenuas y voraces, dividir y conquistar, programación
dinámica.
5. Análisis de algoritmos voraces y dinámicos sobre grafos.
Diseño de Algoritmos

Bibliografía
1. Introduction to Algorithms, Tomas Cormen, Charles Leiserson, Ronald Rivest y Clifford
Stein, MIT-Press, 2001.
2. Estructuras de Datos en Java, Mark Allen Weis, Addison Wesley, 2000.
3. Fundamentos de Algoritmia, G. Brassard P. Bratley, Prentice Hall, 1997.
4. Data Structures and Algoritms in Java, Michael T. Goodrich y Roberto Tamassia, 2/e,
John Wiley & Sons, Inc., 2001
5. Introduction to Algorithms: a creative approach, Udi Mamber, Addison-Wesley Publishing
Company, 1989.

Universidad del Valle – Facultad de Ingeniería – Escuela de Ingeniería de Sistemas y Computación

También podría gustarte