La asignatura Algoritmos aborda técnicas para diseñar y analizar algoritmos. Las técnicas incluyen dividir y conquistar, reintento, programación dinámica y programación voraz/avara. A los algoritmos diseñados se les aplican los dos tipos de análisis usuales en algoritmia: corrección (i.e., el algoritmo hace lo que debe hacer) y eficiencia (i.e., el algoritmo hace buen uso de los recursos disponibles). Se estudia la existencia de problemas decidibles e indecidibles, y también problemas intratables en una introducción a la teoría de la NP-completitud.
En esta asignatura se: (i) apropian y aplican conocimientos de ciencias de la computación para resolver algorítmicamente problemas computacionales; (ii) diseñan, implementan y optimizan algoritmos con base en técnicas de diseño algorítmico; (iii) comunican efectivamente decisiones de diseño e implementación de algoritmos; y (iv) usan técnicas formales de demostración y la notación asintótica para razonar acerca de algoritmos, al igual que herramientas para desarrollar experimentos computacionales.