Un algoritmo es un conjunto de instrucciones bien definidas y ordenadas para resolver un problema mediante pasos sucesivos. Los algoritmos se pueden representar gráficamente a través de diagramas de flujo y se utilizan comúnmente para resolver problemas cotidianos. A lo largo de la historia se han propuesto varias definiciones formales de algoritmo basadas en modelos matemáticos como la calculabilidad efectiva de Church y la máquina de Turing.