Un scénario est linéaire si les événements qui le composent se suivent dans un ordre fixe, déterminé une fois pour toutes par l'auteur. Tel est le cas d'un film ou d'une musique enregistrée. Les programmes sous-utilisent les possibilités d'interaction dans la mesure où, quelle que soit l'action de l'utilisateur, l'ordre des scènes est immuable. La liberté de l'utilisateur est uniquement interne à chaque scène. Parmi les programmes linéaires, on trouve certaines "visites guidées" dans lesquelles la linéarité est conçue comme une aide aux débutants: il s'agit de présenter de façon séquentielle différents écrans d'un même logiciel afin de donner une vue d'ensemble de ce dernier. Il en est de même pour certains logiciels multimédia qui sont conçus comme des 'tourne-page' et qui privilégient la présentation à l'interaction. C'était également le cas des premiers logiciels d'enseignement: chaque élève recevait les mêmes questions dans le même ordre. L'approche pédagogique, d'inspiration béhavioriste, mettait l'accent sur la présentation d'un feed-back immédiat. Néanmoins, ces cours programmés ont rapidement évolué vers une structure "ramifiée" dans laquelle l'ordre de présentation des situations d'apprentissage ou d'évaluation varie selon le comportement de l'élève. Lorsque ces cours "ramifiés" étaient réalisés sur papier, le "branchement" de l'élève exigeait de sa part une manipulation harassante des pages du cours.
Exemple: Quelle est la valeur de 5 à la puissance 3 ?
Si ta réponse est 53, va à la page 5
Si ta réponse est 125, va à la page 10
Si ta réponse est 15, va à la page 7
L'avènement de l'informatique a permis non seulement d'automatiser ces branchements, mais en outre de mettre au point des techniques d'analyse de réponse et de branchement beaucoup plus sophistiquées. Aujourd'hui, la plupart des logiciels interactifs s'éloignent du modèle linéaire d'un film. C'est au contraire le cinéma qui s'inspire des logiciels en produisant les premiers films interactifs, c'est-à-dire des films dont le spectateur peut infléchir le scénario.
A l'opposé du modèle linéaire, on trouve des logiciels qui créent une situation (de travail, de jeux, de problème) plutôt qu'un scénario. L'utilisateur peut explorer librement les différentes parties du programme, sans contrainte sur son cheminement. En EAO, ces programmes portent le nom de "micro-mondes" ou "environnements d'apprentissage". L'exemple le plus connu est le langage LOGO qui permet à des élèves de tout âge de s'initier à l'informatique (entre autres choses) à travers la réalisation de figures géométriques. On peut également classer dans les logiciels de type 'situation'' les logiciels de dessin, de conception, de traitement de texte, etc. Lorsqu'un programme n'est pas linéaire, il implique une décision du système qui peut être prise soit par le système, soit par l'utilisateur, ou encore qui peut résulter d'une interaction entre l'utilisateur et le système. Nous abordons ce point dans la section 7.3.
Lorsque nous décrivons un logiciel en terme de scénario, nous n'avons pas précisé notre échelle, c'est-à-dire la dimension d'une scène. Une scène peut être une seule image ou un long dialogue. En ce qui concerne un programme (linéaire ou non), une scène peut être une page de texte, une question et sa réponse, une situation complexe de résolution de problème ou un chapitre entier. Dans une même logiciel, la linéarité peut varier selon le niveau de granularité considéré. Prenons l'exemple d'un traitement de texte. A un faible niveau de granularité (c'est-à-dire si on considère des scènes importantes), le comportement de l'apprenant peut se décrire par:
Si on réalise un zoom sur l'une de ces opérations, par exemple le résumé, on trouve:
4.1. identifier les idées principales;
4.2. rédiger le résumé;
4.3. isoler graphiquement le résumé du texte.
Si on regarde cette dernière opération de plus près, on trouve:
4.3.1. changer les tabulations;
4.3.2. changer le style des caractères.
Accroissons encore la granularité en analysant la dernière étape:
4.3.2.1. sélectionner le texte;
4.3.2.2. cliquer sur le menu "caractères";
4.3.2.3. tirer la souris jusqu'au "10";
4.3.2.4. relâcher le bouton de la souris.
La linéarité n'est pas identique à ces différents niveaux de granularité de l'analyse: l'ordre des pas 1 à 5 est relativement libre alors que la séquence 4.3.2.1 à 4.3.2.4 est contrainte. A l'inverse, on peut concevoir un logiciel composé d'une séquence de trois jeux que l'utilisateur doit utiliser dans un ordre fixe. La linéarité est alors forte au macro-niveau et faible au micro-niveau.
Si le programme ne suit pas un ordre fixe, c'est parce que, soit l'utilisateur, soit le programme, a pris l'initiative d'un nouvel événement. Par définition, dans un logiciel de type 'outil' (dessin, texte, tableau...), l'initiative est totalement entre les mains de l'utilisateur. Dans d'autres systèmes l'initiative est prise par le programme lui-même, soit:
en réaction aux comportements de l'apprenant: par exemple, un logiciel de jeu qui augmente la vitesse des événements au fur et à mesure que l'utilisateur obtient de meilleurs scores;
parce qu'il a "perçu" un événement extérieur: par exemple, un logiciel de courrier électronique change l'icône "boîte aux lettres" lorsqu'il reçoit un message; ou encore, un logiciel de sauvegarde fait un back-up du disque dur tous les vendredis soir;
au hasard: par exemple, un logiciel de test choisit une question au hasard dans une banque d'items.
Le troisième cas n'est pas le moins intéressant car il permet à un même programme de générer des interactions différentes. Il s'agit d'un point fort du traitement informatique par rapport à d'autres traitements. La plupart des langages informatiques disposent d'une fonction permettant de générer une valeur aléatoire comprise entre 0 et N. L'auteur doit contrôler les nombres produits par cette fonction. Imaginons qu'il génère au hasard deux nombres inférieurs à 1000 en vue de proposer une addition, il pourra obtenir aussi bien 2 + 2 que 697 + 816, c'est-à-dire deux calculs de difficulté très différente. Si il veut générer deux nombres tels que la somme ne dépasse pas 100, il devra par exemple générer un premier nombre N1 entre 0 et 100 et un second entre 0 et (100 - N1). S'il désire que les deux nombres soient des multiples de 10, il fixera la borne supérieure à 10 et multipliera les nombres produits aléatoirement par 10. Dans certains cas, le nombre de contraintes sur le résultat d'un processus aléatoire peut devenir très important. Il est alors plus facile de construire manuellement une base d'objets et d'en sélectionner un aléatoirement. D'autres difficultés subsistent. Par exemple, la génération de nombre aléatoires peut produire n fois les mêmes données successivement. En outre, la plupart des systèmes ne sont pas réellement aléatoires. Ils produisent toujours la même séquence de nombres qui n'est aléatoire qu'aux yeux de l'utilisateur. Ces systèmes doivent alors être initialisés par une valeur qui soit réellement aléatoire. L'auteur utilisera par exemple le chiffre des millièmes de secondes dans le temps de réponse de l'utilisateur à une question quelconque (par exemple, "quel est votre nom?"). Si le temps total de réponse n'est pas aléatoire, on peut raisonnablement penser que le chiffre des millièmes de seconde est lui complètement aléatoire.
En règle générale, la sélection aléatoire est plus facile a programmer que la génération aléatoire, mes elle implique bien sûr de prévoir tous les données possibles. Dans Authorware, la sélection aléatoire repose sur l'icône de décision. Celle-ci permet notamment de préciser si le même choix peut-être réalisé plusieurs fois. La génération aléatoire repose sur l'utilisation de la fonction 'random' dans une icône de calcul. Cette fonction permet de fixer la borne inférieure et supérieure de l'intervalle à l'intérieur duquel le nombre sera choisi, et de déterminer le 'pas' (si ce pas est inférieur à 1, Authorware génère des nombres décimaux).
Dans le domaine de l'EAO, les logiciels sont souvent classifiés par rapport à la balance entre le contrôle exercé par l'élève et celui exercé par le système. On utilise malheureusement le terme ambigu de "contrôle de l'élève" pour désigner en réalité le contrôle de l'interaction par l'élève. Lorsque la balance de contrôle est plus ou moins équilibrée, on parle de "système à initiative mixte". Parmi les systèmes à initiative mixte, on compte par exemple les systèmes dans lesquels le sujet peut soit répondre à des questions ou poser certaines questions et décider quand il passe d'un mode à l'autre. On compte également des systèmes plus complexes, dans lesquels l'élève résout par exemple une équation. L'élève peut utiliser la stratégie qu'il souhaite, mais, s'il s'écarte trop du cheminement correct, le système intervient pour l'aider ou le corriger.
Les systèmes dans lesquels les actions de l'utilisateur sont soit totalement libres, soit totalement contraintes sont les plus faciles à concevoir et à implémenter. Par contre, les systèmes à initiative mixte sont difficiles à réaliser car le programme doit "suivre" l'utilisateur, le "comprendre", afin de déterminer s'il est opportun d'intervenir ou s'il convient au contraire de laisser l'élève persévérer et afin de proposer une aide pertinente.