The process of designing and building an executable computer program for accomplishing a specific computing task.