3.1 Algoritmos y Complejidad (AL)

Los algoritmos son fundamentales para la ciencia de la computación y la ingeniería de software. En el mundo real el rendimiento de cualquier sistema de software depende de: (1) los algoritmos elegidos y (2) la idoneidad y la eficiencia de las diversas capas de aplicación. Un buen diseño de algoritmos es crucial para el rendimiento de todos los sistemas de software. Por otra parte, el estudio de algoritmos da una idea de la naturaleza intrínseca del problema y las posibles soluciones técnicas independientes del lenguaje de programación, paradigma de programación, hardware, o cualquier otro aspecto de implementación.

Una parte importante de la informática es la capacidad de seleccionar los algoritmos apropiados para determinados propósitos y aplicarlos, reconociendo la posibilidad de que no se encuentre un algoritmo adecuado. Este facilidad se basa en la comprensión de la variedad de algoritmos que abordan un importante conjunto de problemas bien determinadas, reconociendo sus fortalezas y debilidades, y su idoneidad en determinados contextos. La eficiencia es un tema omnipresente en toda esta área. Esta área de conocimiento se definen los conceptos centrales y los conocimientos necesarios para diseñar, implementar y analizar los algoritmos para resolver problemas. Los algoritmos son esenciales en todas las áreas avanzadas de la informática: inteligencia artificial, bases de datos, computación distribuida, gráficos, redes, sistemas operativos, lenguajes de programación, de seguridad, y así sucesivamente. Algoritmos que tienen utilidad específica en cada uno de éstos se enumeran en las áreas de conocimiento relevantes. Criptografía, por ejemplo, aparece en la nueva área de conocimiento en Aseguramiento y Seguridad de la Información (IAS) , mientras que los algoritmos paralelos y distribuidos aparecen el Área de Conocimiento de Computación paralela y distribuída (PD) .

Al igual que con todas las áreas de conocimiento, el orden de los temas y sus agrupaciones no necesariamente se correlaciona con un orden específico de presentación. Diferentes programas enseñarán los temas en diferentes cursos y deben hacerlo en el orden que ellos creen es el más apropiado para sus estudiantes. 

KA Core Tier1 Core Tier2 Electivo
3.1.1 Análisis Básico 2 2 No
3.1.2 Estrategias Algorítmicas 5 1 No
3.1.3 Algoritmos y Estructuras de Datos fundamentales 9 3 No
3.1.4 Computabilidad y complejidad básica de autómatas 3 3 No
3.1.5 Complejidad Computacional Avanzada     No
3.1.6 Teoría y Computabilidad Avanzada de Autómatas     No
3.1.7 Estructuras de Datos Avanzadas y Análisis de Algoritmos     No



Subsecciones
Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM