\label{chap:intro}
\addcontentsline{toc}{chapter}{\nameref{chap:intro}}
\addcontentsline{lof}{chapter}{\nameref{chap:intro}}
+ \epigraph{\lorem}{Auteur}
When I was a teenager, I was fascinated by computers, much more than I am today. I started to program early, and at this time I thought it was possible to create a program for everything. I believed the only limit of computer capabilities was the programmer's ability to code it. My limit was… pointers at this time. I wanted to create a program that was able to have a relevant conversation with me. I learned later that many people were working on this for decades. I tried the ELIZA system~\cite{weizenbaum66}, and I was not satisfied with it. It was just repeating what I was saying, and used a small set of expressions to ask me to make the conversation. Most of the time it spotted the right word in my sentence, but sometimes not and what it was saying just did not make any sense. It clearly failed the famous Turing test~\cite{turing50}, I knew about many years later. I think I wanted the program to understand what I write, without having hard coded key sentences or all grammar rules. Nobody speaks like a grammar book. Naively, I wanted to write a better program. However I did not want to code associations between concepts, words, metaphors and so on. I knew this was a huge work, that would take me several lives to achieve, and that when I will be finished, half of it will be obsolete. In fact I had no idea how to start.
In the late 30', Turing defined a \defword{computable function} as follows:
\begin{definition}{Computable function}
-We shall use the expression \defword{computable function} to mean a function calculable by a machine, and let “effectively calculable” refer to the intuitive idea without particular identification with any one of these definitions.
+We shall use the expression \defword{computable function} to mean a function calculable by a machine, and let “effectively calculable” refer to the intuitive idea without particular identification with any one of these definitions.~\cite{turing38}
\end{definition}
Therefore, computable functions refer to programs (\defword{Turing machines} (TM), \defword{$\lambda$-calculus} ($\lambda$-c) or any\defword{Turing-complete} formalism) and effectively calculable functions are algorithms.
Instead of finite set of inputs, interaction machines are connected to single (SIM) or multiple (MIM) data streams.
Their expressiveness in not defined by induction, but respectively by non-well founded sets and co-induction.
-Induction (hence algorithms, TMs, $\lambda$-c, \dots) outputs are recursively enumerable while non-well founded sets and co-induction outputs are non-enumerable~\cite{gordon94}.
-This proves that interaction has a greater expressiveness than algorithms, allowing Wegner to extend the Church-Turing thesis for interaction machines.
-The trade-off is that interaction machines are not made for finding optimal solutions to well specified problems, but satisfying solutions to evolving problems.
-This is precisely the difference between rationalism and empiricism.
+Induction (hence algorithms, TMs, $\lambda$-c, \dots) outputs are recursively enumerable while non-well founded sets and co-induction outputs are non-enumerable~\cite{gordon94,chlipala13}.
+This proves that interaction has a greater expressiveness than algorithms, allowing Wegner to extend the Church-Turing thesis for interaction machines. Turing himself defined other paradigms with more capabilities than TM: choice machines~\cite{turing36} and oracle machines~\cite{turing38}:
+
+\begin{definition}{Choice Machine}
+For some purpose we might use machines (choice machines or \defword{c-machines}) whose motion is only partially determined by the configuration. When such a machine reaches one of these ambitious configurations, it cannot go on until some arbitrary choice has been made by an external operator.~\cite{turing36}
+\end{definition}
+
+
+C-machines clearly define interaction, with the possibility for the environment to influence computation.
+However Turing does not give further details, and focuses on automatic machines (a-machines, later dubbed TM).
+Later, Turing introduced the concept of \defword{oracle}, an agent that can solve any problem, and o-machines, which are TM that use oracles to perform part of their computation.
+This is an evolution of c-machines, but there is not much details.
+
+\begin{definition}{Oracle Machine}
+Let us suppose that we supplied with some unspecified means of solving number theoretic problems; a kind of oracle as it were. We will not go any further
+into the nature of this oracle than to say that it cannot be a machine; with the
+help of the oracle we could form a new kind of machine (call them \defword{o-machines}),
+having as one of its fundamental processes that of solving a given number theoretic problem.~\cite{turing38}
+\end{definition}
+
%Now, Interaction as described by Wegner includes every paradigm that can handle infinite streams, including Object Oriented programming or Neural Networks for example.
% is more powerful than algorithms\cite{wegner95,wegner97}.
-As an example, Wegner describes an interaction machine that simply echoes an input stream to an output stream~\cite{wegner97}.
+As an example of his interaction machines, Wegner describes one that simply echoes an input stream to an output stream~\cite{wegner97}.
By doing so, this machine wins half of chess games by echoing two simultaneous games one to the other.
Such a performance is inaccessible to algorithms, because they only take into account the current configuration to compute the next play.
They are not aware of future plays, and therefore can only estimate the future as possibilities.
Another execution of the algorithm, with the new configurations will handle next plays, ignoring this play even happened.
At the opposite, the interaction machine plays the whole game from start to finish, and relies on its ability to react to every play.
-
%From the opponent point of view, this machine is playing chess, up to the best chess players in the world level.
-By using this mechanism, interaction machines sort of include external behavior.
-It is obvious that Wegner's echo interaction machine passes the Turing Test, twice at the same time.
+By using this mechanism, interaction machines sort of include external behavior, just like Turing's o-machines.
+By extending this example with conversations, it is obvious that Wegner's echo interaction machine passes the Turing Test, twice at the same time.
Therefore, more than just observing the environment with sensors or probes, it can absorb any external computing or thinking power.
It is only limited by what it observes, and how this observation is encoded.
+The trade-off is that interaction machines are not made for finding optimal solutions to well specified problems, but satisfying solutions to evolving problems.
+This is precisely the difference between rationalism and empiricism.
+
%Wegner presents interaction as a way to extend algorithms with external computation of some sort, with his interactive machines.
\subsection{Beaudouin-Lafon}
As a consequence, the domain object returns a response to the user.
The immediate feedback provides high level of control thanks to a fast perception/action cycle.
The response to the command lets the user know the result of his actions, and allows him to continue or correct errors where necessary.
-
%Instruments are tools that
-
Instrumented interaction is an extension of Schneiderman's \defword{direct manipulation}~\cite{schneiderman83}.
+\begin{definition}{Direct Manipulation}
The concept of \defword{direct manipulation} consists of design principles for user interfaces that favors usability.
Objects of interest must be visible and directly manipulable, actions must be rapid, reversible and incremental.
-They may seem obvious today, but in the early 80's these principles made GUIs much more powerful than command-line interfaces in many situations.
+\end{definition}
+
+In the early 80's these principles made \defword{Graphical User Interfaces} (GUI) much more powerful than command-line interfaces in many situations.
+Unsurprisingly, they are similar or related to Nielsen's heuristics for the evaluation of user interfaces~\cite{nielsen90}.
+Instrumented interaction consist in the direct manipulation of instruments, which in turn execute commands on the objects of interest.
+It is a direct inspiration of the use of instruments and tools in the real world.
+% The link between instrumented interaction and direct manipulation is made clear through Beaudouin-Lafon and Mackay's principles of \defword{reification}, \defword{polymorphism} and \defword{reuse}~\cite{mbl00a}.
+
+% They define \defword{reification} as “the process by which concepts are turned into objects”
+% %Instrumented Interaction is an instance of the principle of \defword{reification}, which Beaudouin-Lafon and Mackay define as “the process by which concepts are turned into objects”~\cite{mbl00a}.
+% Instrumented interaction is the reification of commands, which enables users to run commands on objects by interacting with instruments; typically widgets on a GUI.
+% Instruments are designed to be visible and directly manipulable.
-Instrumented Interaction is an instance of the principle of \defword{reification}, which Beaudouin-Lafon and Mackay define as “the process by which concepts are turned into objects”~\cite{mbl00a}.
-Instrumented interaction is the reification of commands, which enables users to run commands on objects by interacting with instruments; typically widgets on a \defword{Graphical User Interface} (GUI).
-Most of objects of a GUI, if not all, are reifications of a real world concept.
-They also define the principle of \defword{polymorphism} in the context of HCI as “the property that enables a single command to be applicable to objects of different types”.
-Similarly to the same concept in programming languages, it is a powerful tool for the design of user interfaces.
-It enables to reduce and group commands, which is useful in complex software that can propose thousands of commands.
-%%Something facilitate mapping
+% %Most of objects of a GUI, if not all, are reifications of a real world concept.
+% They also define the principle of \defword{polymorphism} in the context of HCI as “the property that enables a single command to be applicable to objects of different types”.
+% This property is similar to the concept of polymorphism in programming languages.
+% %Similarly to the same concept in programming languages, it is a powerful tool for the design of user interfaces.
+% It enables reducing and grouping commands, which is useful in complex software that can propose thousands of commands.
+% %%Something facilitate mapping
+% [instruments and reversibility through polymorphism?]
-, and \defword{reuse} “makes previously-provided input available for reuse in the current context”.
+% , and \defword{reuse} “makes previously-provided input available for reuse in the current context”.
+% [instruments and rapid + incremental through reuse?]
-Beyond instrumented interaction, Beaudouin-Lafon describes three interaction paradigms: \emph{computer-as-a-tool}, \emph{computer-as-a-partner} and \emph{computer-as-a-medium}~\cite{mbl04}.
+Instrumented interaction and direct manipulation are examples of the first of Beaudouin-Lafon's interaction paradigms: \emph{computer-as-a-tool}, the others being \emph{computer-as-a-partner} and \emph{computer-as-a-medium}~\cite{mbl04}.
+A partner system is the reification of ?
\cite{mbl06}
Crowdsourcing: tasks not doable by a computer
+\begin{table}[htb]
+\centering
+\begin{tabular}{c m{2cm}|m{2cm}|m{2cm}|m{2cm}|m{2cm}}
+\toprule
+\multicolumn{2}{c}{} & \multicolumn{4}{c}{\textbf{Authority}}\\
+\multicolumn{2}{c}{} & \multicolumn{2}{c|}{Without} & \multicolumn{2}{c}{With}\\
+\cmidrule{3-6}
+\multicolumn{2}{c}{} & \multicolumn{2}{c|}{\textbf{Trust}} & \multicolumn{2}{c}{\textbf{Trust}}\\
+\cmidrule{3-6}
+\multicolumn{2}{c}{} & Without & With & Without & With\\
+\midrule
+%\multirow{2}{*}[-0.8cm]{\rotatebox[origin=c]{90}{\textbf{Fluidity}}} & Fluid & & & & \\[1cm]
+\multirow{2}{*}{\textbf{Fluidity}} & Fluid & & & & \\[1cm]
+\cmidrule{2-6}
+ & Rigid & & & & \\[1cm]
+\bottomrule
+\end{tabular}
+\end{table}
+
\subsection{Technology incompleteness}
Every time a new technology is out, people predict the end of older technology.
\myquote{Everything the best for something and the worst for something else}{W.A.S. Buxton}
+GPS:
+humans create streams
\subsection{Designer as part of problem solving}