Es un conjunto de pasos o instrucciones bien definidas que siguen un orden específico que se utilizan para resolver un problema o realizar una tarea específica.
Definido: Cada paso debe estar claramente especificado.
Finito: Debe tener un número limitado de pasos.
Entrada: Puede tener cero o más entradas (datos para empezar)
Salida: Debe tener al menos una salida (resultado o respuesta)
Efectivo: Los pasos deben ser lo suficientemente básicos para que puedan ser ejecutados.