A computer is a machine, fancy machine, but a machine. It's much more capable than most machines. Most computers are used for the creation, transfer, storage, dissemination, retrieval of information. To do this properly, the system must be able to provide information on what it's doing to the operator. Let's call the information it's handling data, call the operator the user, and call the user requests and processes actions. OK.
Now information is passed be between people, and between people and machines, and between machines, in many forms. In each case the information can be on actions or data. The information is formulated into symbols that mean something to both parties (whatever they are) and usually means the same thing to both parties.
OK here goes.
When a user wants to handle data, they need to formulate a request and pass this to the computer. It then processes the request, and returns the results to the user - usually by giving the user the requested data, or by storing the new data.
This process can be done in many ways, and has been done so. The computer uses electronic signals while humans use more physical symbols, usually visual ones. In the early days of computers, things like punch cards were used to transfer symbols between the computer and the user. This improved to the use of printed words on a piece of paper. Today we use keyboards to send electronic instructions one letter at a time, we use voice interaction software (like Dragon Dictate), and we use graphical user interfaces - GUI. In the future we may well use some sort of process whereby we think thoughts and they're transmitted to the computer, and the data is fed back as thoughts - scientists are already working on this.
At the moment, the most common interaction with computers and humans is to use a GUI.
In the use of a GUI, the designer picks or creates symbols. They assign a meaning to that symbol, and then instruct both the user and the computer as to what that symbol means. The industry has reached an agreement that certain symbols will always have specific meanings, also there are many symbols within the general community that have set meanings, and these are used within GUIs with their general community meaning (stop signs being a classical example).
No computer ever creates a symbol of its own, the scientists are working to try and get one to do so, such an action would be evidence of Artificial Intelligence.
The end result is that the designer establishes symbols, and their meanings, these are made known to the computer and the user. When a symbol is activated, the meaning made known to the computer is a set of coded computer instructions, that the computer follows. This process is by far the most efficient used to date, as one symbol can be sued to convey many words or ideas, what ever you wish it to.
Program designers study many social science things that have an impact on their work. Like which colours evoke what emotions, etc.
To date, all people involved in computer application, and operating system, designs stick to a bunch of very general symbols that have very general meanings. this is done to minimise the learning curve of people using a piece of software they haven't used before. Where they have to create a new symbol, they try to make it as intrinsically obvious as possible, and thus obvious what it refers to, based on normal human development and educational factors.
The next level of symbol usage is the design of menus, various actions are grouped together in sub groups and placed in a menu. This is done to give people access to a much wider set of actions. All this is also taken into account by the designers. And the values are assigned by them, errors occur, when some human, either designer or user, does not do their job correctly. Actual hardware errors are extremely rare, most turn out to be software design faults.
-----------------
There is another aspect of this that we have not covered, and I will touch on it lightly, we can start a new sub thread if you wish to delve further. That is the process of the computer assisted human - human interface or interaction. So far we have spoken about when humans deal with computers.
However, when a person, deals with another person, solely via a computer (such as this discussion thread) we have another type of interface, the Human-Machine-Human Interface H-M-H I, today, the machine is often a computer.
This type of interface has its good points and its bad points. Look at Stephen Hawking, the H-M-H I he uses allows him to interact with people, no computer, no interaction. People who need time to work out what someone is saying, finds the written word much easier to understand, they have time to puzzle out the meanings. It often removes the live response, reactions we're used to seeing.
The types of systems we're talking about here are telephones, answering machines, computer controlled answering machines, electronic boards and discussion threads (like this), chat rooms, video conferences, etc.
These system allow us to step back and be a bit dehumanised, they also allow us higher levels of anonymity. These have both good and bad aspects.
-----------
In both these interface activities, opportunities exist for errors because people frequently wish to assign their own values for what symbols (be they pictures or words) mean.