Este documento presenta una introducción a los conceptos de algoritmos y estructuras de datos. Define un algoritmo como un procedimiento bien definido que toma valores de entrada y produce valores de salida. Explica que un algoritmo debe terminar en un tiempo razonable independientemente del lenguaje de programación. También define un problema formalmente como un objetivo de transformar una circunstancia actual a otra deseada, y una instancia de un problema como una entrada particular que satisface las reglas del problema.