Software is a general term used to describe a collection of computer programs, procedures, and documentation that perform some task on a computer system. Practical computer systems divide software systems into three major classes: system software, programming software, and application software, although the distinction is arbitrary and often blurred. Software is an ordered sequence of instructions for changing the state of the computer hardware in a particular sequence. Software is typically programmed with a user-friendly interface that allows humans to interact more more efficiently with a computer system.
Hardware is best described as a device, such as a hard drive, that is physically connected to the computer or something that can be physically touched. A CD-ROM, computer display monitor, printer, and video card are all examples of computer hardware. Without any hardware, a computer would not function, and software would have nothing to run on. Hardware and software interact with one another: software tells hardware which tasks it needs to perform.
There are several differences between computer hardware and software.