But most importantly, the feedback loop stabilizes the output voltage to the desired value.
This kind of control mechanism is used in many applications such as robots, domestic appliances, or drones.
It is also used in haptic devices that leverage information from people with \defword{Human-in-the-loop} models~\cite{vanderlinde02}.
-
-NOT OUR FOCUS
+This paradigm focus on system control, and the human only exist as a parameter of the equation.
+Therefore despite the similarities with the way we describe human behavior, this is not our focus.
\input{figures/amplifiers.tex}
-\todo{Interest in human behavior for the design of interactive systems: 1) take inspiration of ot and reproduce a similar behavior. 2) make a better connection between humans and systems}
-
-
+%\todo{Interest in human behavior for the design of interactive systems: 1) take inspiration of ot and reproduce a similar behavior. 2) make a better connection between humans and systems}
+The second reason to study human behavior is to improve interaction between humans and interactive systems.
+Humans and interactive systems are distinct entities that need each other and must communicate to achieve their objective.
+Hence we will discuss below the architecture of interactive systems, the similarities and differences with humans, and how this is critical for improving interactions between them.
-Computers and programs are based on theoretical models such as $\lambda$-calculus~\cite{church32} or Turing machines~\cite{turing38}.
-These are computing models, and they focus on solving numerical problem.
+Initially, computers and programs were essentially based on theoretical models such as $\lambda$-calculus~\cite{church32} or Turing machines~\cite{turing38}.
+These are computing models, and they focus on solving numerical problem rather than contributing to everyday activities.
A Turing machine has an infinite tape with symbols written in advance, and a pre-defined transition table that describes the behavior of the machine.
Therefore these machines ignore their environment, in which anything can change at anytime.
All these models are equivalent (or Turing-equivalent), and the Church-Turing thesis says that everything these models can compute can be implemented with an algorithm.
The absence of a base constructor make streams infinite structures.
Therefore recursive function on streams potentially run forever.
Hence, there is no equivalent of a \verb+length+ function because it would never return a value.
-However, functions such as in this example make sense.
+However, functions such as in this example still make sense.
+They operate iteratively rather than globally, therefore they can operate on infinite structures.
\begin{code}[language=Coq, label=lst:coinduction, caption=Co-inductive stream and example of co-inductive function on a stream.]
CoInductive stream : Set :=
It shows that interaction is a general process that connects entities in the environment to enable them exchanging information.
Algorithms only process information to transform known input into outputs without knowledge of the overall scheme, and no external event can change their behavior during their execution.
Interactive systems we use everyday react to unpredictable inputs in real time.
+%They leverage algorithms, but the time constraints are critical.
Therefore they are not just built with algorithms.
%The input streams are unpredictable, and their behavior adapts to
They have separated input and output loops at different levels that communicate through streams.
Therefore, applications are what Wegner calls \defwords{interaction machines}{interaction machine}~\cite{wegner97}.
%\defwords{Neural networks}{neural network} are other examples of interaction machines: they also get input streams and produce output streams~\cite{mcculloch43}.
-Software models describe the connection between input, output, and computing.
-PAC \cite{coutaz87}
-Arch \cite{arch92}
-MVC \cite{reenskaug79,reenskaug79a}
-Seeheim \cite{green85}
+Software architectures step away from algorithms to describe a higher-level structure that connects users to a functional \emph{model}.
+This model, also called an \emph{abstraction}, defines the objects of the system, their properties and the operations on them.
+For example, the MVC architecture distinguishes the model with \emph{views} that describe how objects are presented to users and \emph{controllers} that define the way users can manipulate them~\cite{reenskaug79,reenskaug79a}.
+Arch~\cite{arch92} and PAC~\cite{coutaz87} rather combine input and outputs as a \emph{presentation} component, and add a \emph{controler} component that manages transitions between abstract inputs/outputs and domain-specific properties of the model/abstraction.
+The modern MVC architectures follow this structure as well.
+The advantage of these architectures is to separate the objects of interest from the interaction with them.
+It is therefore easy to display several synchronized representations of the same object, and provide multiple ways to manipulate them.
+These interactive properties contribute to leveraging human capacities and flexibility through multimodality \cite{nigay95,nigay04}.
+
+%Seeheim \cite{green85}
adaptations of Norman's theory
+Communication: humans and system both have a perceptual model of the other.
+It does not necessarily match their conceptual model.
+On the human side, the conceptual model of systems is known by the designer, and the perceptual model comes from experience, and software part evolves.
+On the system side, the conceptual model of humans is unknown, studied by psychologists. The perceptual model depends on sensors and algorithms that
+
\input{figures/sevenstages2.tex}