Referencias Bibliográficas: [Guttag, 2013,Cormen et al., 2009]
Temas
- Paradigmas:
- Fuerza Bruta (por ejemplo, búsqueda lineal, ordenamiento por selección, viajante de comercio, mochila)
- Disminuir y Vencer:
- Por una Constante (por ejemplo, ordenamiento por inserción, ordenamiento topológico)
- Por un Factor Constante (por ejemplo, búsqueda binaria)
- Por un Tamaño Variable (por ejemplo, Euclides)
- Dividir y Vencer (por ejemplo, búsqueda binaria, quicksort, mergesort, Strassen)
- Voraz (por ejemplo, Dijkstra, Kruskal, Mochila)
- Transformar y Vencer:
- Simplificación de instancia (por ejemplo, encontrar duplicados mediante preordenamiento de lista)
- Cambio de representación (por ejemplo, heapsort)
- Reducción de problema (por ejemplo, mínimo común múltiplo, programación lineal)
- Programación dinámica (por ejemplo, Floyd, Marshall, Bellman-Ford)
- Compromisos espacio vs tiempo (por ejemplo, hash)
- Iteración vs recursión (por ejemplo, factorial, búsqueda en árbol)
- Estrategias de descomposición de problemas.
- Técnicas de diseño de algoritmos.
- Estrategias de depuración y prueba.
- Seguimiento de la ejecución del programa.
Aprendizaje esperado (Learning Outcomes)
- Para cada uno de los paradigmas en esta unidad:
- Explicar sus características definitorias
- Explicar un ejemplo que demuestre el paradigma incluyendo cómo este ejemplo satisface las características del paradigma.
[Familiarizarse]
- Dar ejemplos de algoritmos iterativos y recursivos que resuelvan el mismo problema, explicar los beneficios y desventajas de cada enfoque [Usar]
- Evaluar si un enfoque voraz conduce a una solución óptima [Evaluar]
- Aplicar técnicas sistemáticas de depuración para
localizar y corregir errores. [Usar]
- Analizar la complejidad algorítmica para problemas
simples. [Familiarizarse]
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM