A computer program tells a computer what the computer should do. It is a sequence of instructions to be executed in order. A computer program consists of a set of instructions that the computer understands.
A computer without a program does absolutely nothing.
The instructions in a computer program are in machine code; they are usually originally written in a computer programming language, and translated to machine code using a computer program called a compiler. Sometimes the programming language is simply a set of abbreviations for the machine code instructions, called assembly language -- in this case, a program called an assembler is used to make the translation.
It is sometimes used as a synonym for "software"; although the main part of any software is programs, software also often includes resource files that contain data of some kind; these are not part of the program per se. An abstract program is sometimes called an algorithm.
An alternative British spelling is computer programme, although this is rare and the British spelling in this context is generally 'program'.