To discuss software, I need to first introduce several terms. Instructions that tell a computer what to do are known as software; this contrasts with hardware, the physical elements of a computer. An ordered set of software instructions that accomplishes a task is called a program, and programming is the act of writing such programs.
The term application is sometimes used synonymously with program, although application tends to refer to a program that interacts directly with humans, rather than programs that interact with software or hardware. An application may also consist of multiple programs working together. The word app came into popular use around 2008, and tends to carry other connotations