A computer is a general purpose device that can be programmed to carry out a finite set of arithmetic or logical operations. Since a sequence of operations can be readily changed, the computer can solve more than one kind of problem.
Conventionally, a computer consists of at least one processing element, typically a central processing unit (CPU) and some form of memory. The processing element carries out arithmetic and logic operations, and a sequencing and control unit that can change the order of operations based on stored information. Peripheral devices allow information to be retrieved from an external source, and the result of operations saved and retrieved.
Modern computers based on integrated circuits are millions to billions of times more capable than the early machines, and occupy a fraction of the space. Simple computers are small enough to fit into mobile devices, and mobile computers can be powered by small batteries. Personal computers in their various forms are icons of the Information Age and are what most people think of as "computers". However, the embedded computers found in many devices from mp3 players to fighter aircraft and from toys to industrial robots are the most numerous.
A desktop computer is a personal computer (PC) in a form intended for regular use at a single location, as opposed to a mobile laptop or portable computer. Early desktop computers are designed to lie flat on the desk, while modern towers stand upright. Most modern desktop computers have separate screens and keyboards.
Prior to the widespread use of microprocessors, a computer that could fit on a desk was considered remarkably small. Early personal computers, like the IBM PC, were "desktop" machines, with a horizontally oriented computer case, usually intended to have the display screen placed on top to save space on the desktop. In modern usage the word "desktop" usually refers to tower cases that are in fact more often located on the floor under the desk than on a desk.
Technically speaking desktop and tower computers are two different styles of computer case that use desk space in varying ways.[original research?] Cases intended for home theater PC systems are usually considered to be desktop cases in both senses, regardless of orientation and placement.
Computer hardware equals the collection of physical elements that comprise a computer system. Computer hardware refers to the physical parts or components of a computer such as monitor, keyboard, hard drive disk, mouse, printers, graphic cards, sound cards, memory, motherboard and chips, etc all of which are physical objects that you can actually touch. In contrast, software is untouchable. Software exists as ideas,application, concepts, and symbols, but it has no substance. A combination of hardware and software forms a usable computing system.
Computer software, or just software, is a collection of computer programs and related data that provides the instructions for telling a computer what to do and how to do it. Software refers to one or more computer programs and data held in the storage of the computer. In other words, software is a set of programs, procedures, algorithms and its documentation concerned with the operation of a data processing system. Program software performs the function of the program it implements, either by directly providing instructions to the digital electronics or by serving as input to another piece of software. The term was coined to contrast to the old term hardware (meaning physical devices). In contrast to hardware, software "cannot be touched". Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.
Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, executable code consists of machine language instructions specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state. Programs are an ordered sequence of instructions for changing the state of the computer in a particular sequence. It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.