Estudio de métodos y técnicas para el análisis de la complejidad de algoritmos computacionales. Diseño de nuevos algoritmos capaces de minimizar el tiempo de ejecución y optimizar el uso de recursos computacionales. Los temas incluyen: análisis asintótico, estrategias ambiciosas, división y conquista, programación dinámica, “backtracking” y algoritmos de grafos, búsqueda y ordenamiento.