Este documento resume los conceptos fundamentales de la Teoría de la Complejidad Computacional, incluyendo la clasificación de problemas en decidibles e indecidibles, y la clasificación por complejidad en problemas de clase P, NP y NP-completo. Problemas de clase P son tratables, mientras que problemas NP incluyen problemas de búsqueda y optimización, y problemas NP-completos son igual de difíciles entre sí.