**2. Human computer interaction**

The idea of Human-Computer Interaction/Interfacing (HCI) was automatically represented with the advent of the computer or, more generally, the system itself, also referred to as Man-Machine Interaction or Interfacing. In fact, the explanation is straightforward: most advanced machines are useless unless men can use them properly. The main ideas that should be considered in the development of HCI clearly present in this simple argument: functionality and usability [20].

In the end, why a system is actually built can be determined by what the system can really do, i.e. how a system's function can assist in achieving the system's purpose. A system's functionality is characterized by the collection of actions or services it offers its users with. After all, the functionality value is only observable until it becomes feasible for the user to be used effectively [21]. The usability of a system with any functionality is the extent and degree to which the system can be used easily and reasonably by certain users to achieve specific objectives. If there is an appropriate equilibrium between the functionality and usability of a system, the real productivity of a system is achieved [22].

Taking these definitions into account and knowing that in this context, the term system, machine and computer are often used interchangeably, HCI is a design that should build a match between the user, the machine and the services needed in order to achieve a certain output both in terms of quality of service and optimality [23]. Most of it is subjective and context based to decide what makes a certain HCI design successful. An aircraft model design tool, for instance, must have precision in the display and design of the components, whereas graphics editing software doesn't really require such accuracy. The technologies available may also have an effect on how various types of HCI are configured for the same reason. For example, commands, menus, graphical user interfaces (GUIs) or virtual reality can be used to access the information on a given device. A more detailed description of

current techniques and technologies used to communicate with computers and the latest developments in the field is provided in the next section.
