A process that leads from an original formulation of a computing problem to executable computer programs