Modularidad
Un problema se puede dividir en sub-problemas más sencillos. Estos sub-problemas se conocen como módulos. Dentro de los programas se les conoce como sub-programas y de estos hay dos tipos los procedimientos y las funciones.
Ambos reciben datos del programa que los invoca, donde los primeros devuelven una tarea específica y las funciones un resultado. Los procedimientos en los nuevos lenguajes de programación cada vez se utilizan menos, por lo que la mayoría de lenguajes de programación utilizan en mayor medida las funciones, un ejemplo de un lenguaje de programación construido únicamente por funciones es el lenguaje C.
Cuando un procedimiento o una función se invocan a sí mismos, se le llama recursividad.
Fuente: Apunte Análisis, diseño e implantación de algoritmos de la facultad de contaduría y administración, UNAM