FR 2976391 A1 20121214 FR 1101752 A 20110608 EDUNOVO 1.FRD 1 Dispositif électronique d'apprentissage personnel L'invention concerne les dispositifs électroniques d'apprentissage personnel. L'informatique a maintenant pris une place à part entière dans tous les secteurs de la vie moderne, des radios réveils commandés par Internet aux voitures équipées de jukebox numériques en passant par les livres de cuisine électroniques, sans oublier son omniprésence dans notre vie professionnelle. Cette omniprésence s'est également étendue aux secteurs de l'apprentissage, qu'il soit dans un cadre professionnel ou éducatif. Il existe maintenant des offres d'apprentissage par ordinateur pour les langues ou pour d'autres domaines, adaptées à un public jeune ou plus mature. Les logiciels d'apprentissage par ordinateur reposent actuellement sur deux formats principaux. Le premier format est un format très immersif, dans lequel un univers est créé autour de l'apprentissage envisagé, et le logiciel final est presque équivalent à un jeu vidéo moderne en termes de complexité, ce qui vaut d'ailleurs à ces logiciels le titre de "serious games" ("jeux sérieux"). Ce type de logiciel, bien que très efficace, présente le désavantage d'être très complexe à mettre en oeuvre, d'être peu portable entre diverses plateformes, et peu reproductible. En fait, il faut repartir de zéro à chaque fois que l'on crée un nouveau logiciel. Et même le changement de quelques comportements simples au sein d'un logiciel déjà programmé peut poser de sérieux problèmes. Le deuxième format est un format très simpliste, dans lequel l'apprentissage se résume à 30 une simple page, souvent de type page web, qui contient un questionnaire à choix multiples (QCM). Ces logiciels sont en fait des "jeux simplistes". Ce type de logiciel n'est pas satisfaisant car il n'offre aucune interactivité avec l'utilisateur. D'autre part, ces logiciels sont souvent très pauvres graphiquement, ce qui limite très fortement l'immersion de l'utilisateur. Enfin, comme ils sont limités aux QCM, il n'est pas possible de fournir des exercices avec une diversité suffisante d'activité, ni adaptée à tous les types d'apprentissages. L'invention vient améliorer la situation. À cet effet, l'invention propose un dispositif électronique d'apprentissage personnel, comprenant un contrôleur propre à commander un moteur d'affichage d'une interface graphique, en fonction de données d'exercice et en fonction de données d'interaction saisies par l'utilisateur, via une interface d'entrée. Les données d'exercice comprennent une pluralité de jeu de données d'élément de contexte, comprenant pour chaque jeu des données de présentation et des données de valeur, et un jeu de données d'apprentissage, comprenant des données de question, des données de test et des données de validation. L'interface d'entrée permet à l'utilisateur de modifier les données de valeur d'un élément 20 de contexte, et/ou d'associer deux ou plusieurs éléments de contexte entre eux, en tant que données d'interaction. Le contrôleur est agencé pour sélectionner des données de question courantes, et, en réponse à des données d'interaction désignant au moins un élément de contexte donné, 25 est en outre agencé pour : - commander le moteur pour modifier l'interface graphique en fonction des données de présentation de l'élément de contexte donné pour représenter l'interaction désignée par les données d'interaction, - exécuter une fonction de test, ladite fonction de test comprenant : 30 o la détermination que les données de valeur associées à l'élément de contexte donné satisfont les données de validation, en fonction des données de question courantes et des données de test, o l'émission d'un message sonore et/ou graphique en fonction de cette détermination, et la mise à jour sélective des données de question courantes et, o la terminaison de l'exercice en fonction des données de question courantes. Ce dispositif est très avantageux, car il permet d'offrir un apprentissage de qualité, à la manière des jeux sérieux, tout en offrant la souplesse de programmation des jeux simplistes. 10 D'autres caractéristiques et avantages de l'invention apparaîtront mieux à la lecture de la description qui suit, tirée d'exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels : - la figure 1 représente un exemple d'environnement informatique mettant en oeuvre l'invention, 15 - la figure 2 représente un schéma de mise en oeuvre d'un logiciel d'apprentissage selon l'invention, - la figure 3 représente un diagramme fonctionnel montrant le fonctionnement d'un dispositif de la figure 2, la figure 4 représente un diagramme fonctionnel d'une opération de la figure 3, et 20 - la figure 5 représente un diagramme fonctionnel d'une autre opération de la figure 2. Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la 25 présente invention, mais aussi contribuer à sa définition, le cas échéant. La présente description est de nature à faire intervenir des éléments susceptibles de protection par le droit d'auteur et/ou le copyright. Le titulaire des droits n'a pas d'objection à la reproduction à l'identique par quiconque du présent document de brevet 30 ou de sa description, telle qu'elle apparaît dans les dossiers officiels. Pour le reste, il réserve intégralement ses droits. Le domaine des dispositifs électroniques d'apprentissage est un domaine particulier. D'un côté, une immersion poussée et une ambiance spécifique sont souhaitables pour améliorer l'apprentissage, à la manière des jeux vidéos. Cela signifie que le contenu et l'interaction doivent être assez riches. De l'autre côté, une reproduction aisée est souhaitable, car il faut de nombreux exercices variés pour réaliser un apprentissage efficace. Cela signifie donc qu'il est important de ne pas recommencer à zéro à chaque fois. Cela peut paraître contradictoire. C'est d'ailleurs à partir de ce constat que les logiciels d'apprentissage ont été réalisés à ce jour : les uns (les "jeux sérieux") privilégient l'immersion et l'interaction au détriment de la reproductibilité, alors que les autres (les "jeux simplistes") privilégient la reproductibilité au détriment de l'immersion et de l'interaction. Mais en réalité, aucune de ces deux approches n'est bonne. Et le système représenté sur la figure 1 vient apporter une solution qui montre que les besoins spécifiques aux logiciels d'apprentissage ne sont pas contradictoires. L'environnement informatique représenté sur la figure 1 comprend un poste de création 2, un espace de stockage de fichier descriptif 4, un espace de stockage de contenu 6, un réseau 8 et un poste informatique 10. 25 Le poste de création 2 permet à un créateur de concevoir un ou plusieurs programmes d'apprentissage conformes aux enseignements de l'invention. Dans une première variante, le poste de création 2 peut être un ordinateur classique, qui exécute un programme spécialisé pour la création de programmes d'apprentissage. Plus 30 particulièrement, ce programme peut comprendre une interface spécifique adaptée au format de programmes de l'invention.20 Un tel programme peut présenter l'avantage d'être aisé à utiliser, d'offrir un rendu visuel direct du programme d'apprentissage créé, et comprendre des fonctions pour vérifier automatiquement certaines règles relatives au format et au langage du dispositif de l'invention. Dans une deuxième variante, le poste de création 2 peut être un ordinateur classique muni d'un simple programme de traitement de texte, à partir duquel le créateur va écrire directement la description du ou des exercices et réaliser les associations de contenu qui lui correspondent. Les espaces de stockage 4 et 6 ont pour fonction le stockage des éléments informatiques qui vont définir abstraitement les programmes d'apprentissage et les exercices qu'ils contiennent. 15 Ainsi, l'espace de stockage 4 reçoit des fichiers qui seront par la suite référencés par le terme "Desc_Fi". Ces fichiers sont des fichiers de type texte et contiennent une description de chaque exercice. Cette description sera explicitée plus avant dans ce qui suit, et comprend une description graphique simplifiée de l'exercice, ainsi que la définition de l'ensemble des interactions sonores, visuelles et éducatives de l'exercice. 20 Selon une première variante, un fichier donné de l'espace de stockage 4 correspond à un unique exercice, qui peut ensuite être appelé indépendamment par n'importe quel programme ayant accès à l'espace de stockage 4. 25 Selon une deuxième variante, chaque fichier de l'espace de stockage 4 correspond à un programme d'apprentissage, et peut donc comprendre plusieurs exercices qui peuvent être appelés lorsque ce programme est exécuté. L'espace de stockage 6 reçoit pour sa part toutes les données de contenu qui sont 30 associées aux fichiers de l'espace de stockage 4. Plus précisément, il a été expliqué que chaque fichier de l'espace de stockage 4 comprend une description textuelle d'un 10 exercice. Cette description contient des références à des fichiers images, et/ou sons, et/ou vidéos. Ce sont ces fichiers qui sont stockés dans l'espace de stockage 6. Les espaces de stockage 4 et 6 peuvent être réalisés de très nombreuses manières. Ainsi, ces espaces de stockage peuvent être situés sur un disque dur ou tout autre support de stockage du poste de création 2, ou sur tout espace de stockage accessible depuis le poste de création 2, comme un espace de stockage hébergé à distance, accessible par Internet ou autrement. Les espaces de stockage 4 et 6 sont ici distingués pour mettre en valeur la différence entre les fichiers qu'ils reçoivent. Cependant, ces espaces peuvent être réalisés aussi bien au sein d'un même répertoire d'un support de stockage donné que dans plusieurs répertoires distincts de ce support de stockage. Ils peuvent également être répartis sur plusieurs supports de stockage distincts. Une fois l'exercice créé, il est entièrement décrit par le fichier qui lui correspond dans l'espace de stockage 4 et par les fichiers de contenu correspondants dans l'espace de stockage 6. En variante, le fichiers de l'espace de stockage 4 et le fichier de l'espace de stockage 6 peuvent être encapsulés dans un conteneur de données d'exercice. Les espaces de stockage 4 et 6 sont rendus accessibles par un réseau 8 au poste 10. Le réseau 8 peut être un réseau local, ou tout type de réseau étendu, y compris l'Internet. Dans une autre variante, les espaces de stockage 4 et 6 peuvent être reproduits sur un support de stockage tel un disque dur, un CD-ROM ou un DVD exécuté sur le poste 10. Le poste informatique 10 peut être tout type de poste informatique connu. La seule contrainte est que ce poste soit capable d'exécuter le programme de l'invention et qu'il soit capable d'accéder aux espaces de stockage 4 et 6. 30 Plus précisément, l'invention peut être mise en place par Internet, c'est-à-dire qu'un utilisateur du poste 10 va visiter un site web. Ce site web comprend un programme qui 25 va interpréter les fichiers des espaces de stockage 4 et 6 et les restituer au poste 10 sous la forme d'une page web. En variante, l'invention peut être mise sur un support de stockage comme précisé plus haut, et le programme qui interprète et restitue les fichiers des espaces de stockage 4 et 6 est stocké avec eux sur ce support. Il faut alors que le poste 10 soit capable d'exécuter ce programme, tant d'un point de vue de la compatibilité de système d'exploitation que des capacités de calcul. Enfin, ces deux variantes peuvent être combinées, c'est-à-dire que certains fichiers peuvent être accessibles par Internet ou un autre réseau étendu, tandis que d'autres sont présents sur un support physique. Cela s'applique tant aux fichiers des espaces de stockage 4 et 6 qu'au programme pour les interpréter et les restituer. La figure 2 représente un exemple de fonctionnement de l'invention sur le poste 10. Dans cet exemple, le poste informatique 10 qui est un dispositif électronique d'apprentissage personnel. Le dispositif électronique d'apprentissage personnel 10 reçoit un fichier 20 de l'espace de stockage 4, et un fichier 22 de l'espace de stockage 6. Les fichiers 20 et 22 correspondent à un exercice choisi. Le fichier 20 comprend les données d'exercice qui le décrivent, et le fichier 22 comprend les données de contenu de l'exercice. Les fichiers 20 et 22 sont transmis à un contrôleur 24 du dispositif électronique 25 d'apprentissage personnel 10. Le contrôleur 24 comprend un tisseur 26 et un moteur 28. Le tisseur 26 a pour fonction la génération d'un exercice 30 prêt à être affiché par le moteur 28, sur commande du contrôleur 24. 30 La figure 3 représente un diagramme fonctionnel du fonctionnement du dispositif de l'invention. Comme on peut le voir sur cette figure, le contrôleur 24 reçoit le fichier 20 dans une opération 300. Dans cet exemple, cette opération a lieu au niveau du poste 10. Dans d'autres modes de réalisation, cette étape pourrait être réalisée à distance, sur un serveur. Ensuite, dans une opération 320, le tisseur 26 vérifie le contenu du fichier 20. En effet, le dispositif 10 repose sur l'utilisation d'un fichier de description d'exercice obéissant à une syntaxe particulière, qui permet d'intégrer un maximum d'informations en un minimum de place. Dans l'exemple décrit ici, le fichier 20 est écrit en XML, selon une syntaxe et une grammaire propres à l'invention. Cependant, tout autre langage de programmation à format hiérarchique pourrait être adapté pour mettre en oeuvre l'invention. La figure 4 représente un exemple de mise en oeuvre de l'opération 320. La vérification 15 du fichier 20 commence par une opération 400 de vérification de la syntaxe de ce fichier. Pour cela, le tisseur 26 vérifie la syntaxe XML du fichier 20. Cela est important, car bien qu'il soit prévu un programme de génération automatique de fichier de description d'exercice, il est également possible de les écrire à la main. Dans l'exemple décrit ici, le fichier de description d'exercice comprend plusieurs parties distinctes formant données d'exercice. Une première partie comprend des déclarations de paramètres, tel que le type 25 fonctionnel d'exercice (à cartes, à chiffres, à lettres, à boutons, à correction différée ou pas, etc.), et des instructions sur le type d'apprentissage (du type "rassembler les cartes paires ensemble", "calculer la somme des cartes", etc.), formant données d'exercice. Une deuxième partie comprend la description des éléments de contexte de l'exercice, 30 comme le décor, les éléments d'interaction, les différents plans, etc. 20 Pour les éléments d'interaction, qui peuvent donc être déplacés et/ou modifiés, cette deuxième partie vient préciser leur identifiant, leur emplacement de départ, ainsi que leur nature. En effet, dans un exercice à cartes par exemple, certains éléments sont des cartes à déplacer d'un endroit vers un autre. Un bloc de départ est donc défini, dans lequel sont définies plusieurs zones qui contiennent chacune un élément d'interaction. Un bloc d'arrivée est également défini, dans lequel sont définies plusieurs zones d'arrivée, pour la réalisation de l'exercice. Des sons peuvent être associés à chaque élément d'interaction. afin d'augmenter l'immersion de l'utilisateur. Une troisième partie comprend une table de vérité qui contient la réponse à l'exercice et qui forme des données de validation. La troisième partie comprend également des tests de validation des réponses aux questions de l'exercice formant données de test et des messages à l'intention de l'utilisateur en fonction de ses réponses. Le fonctionnement de ces éléments sera décrit plus avant avec la figure 5. La troisième partie constitue la partie "dynamique" de la description de l'exercice. Enfin, une quatrième partie comprend des déclarations de données graphiques, et 20 éventuellement sonores, permettant d'accéder aux contenus déclarés plus haut dans les autres deuxième et troisième parties. Une fois la syntaxe du fichier 20 vérifiée, l'opération 320 se poursuit avec une opération 420 dans laquelle la grammaire du fichier 20 est vérifiée. Plus précisément, 25 cette opération vérifie que le fichier 20 est décrit conformément à la structure en quatre parties décrite plus haut, et que cette structure est cohérente. Lorsqu'il existe des problèmes de syntaxe et/ou de grammaire simples, le tisseur 26 peut les corriger à la volée pour permettre une exécution la plus rapide possible pour 30 l'utilisateur. En variante, ou lorsque l'erreur ne peut pas être corrigée directement par le tisseur 26, un message est émis pour indiquer à l'utilisateur que l'exercice ne peut pas être exécuté. Lorsque les opérations 400 et 420 se terminent avec succès, le fichier 22 est appelé dans une opération 440 afin de permettre la fusion des données de contenu qu'il renferme avec celles du fichier 20. Cela est réalisé dans une opération 340, avec la fusion du fichier 22 qui contient les données de contenu déclarées avec le fichier 20, pour former un exercice exécutable. Selon les modes de réalisation, l'exercice exécutable pourra être obfusqué ou pas, contenu dans un fichier Flash ou dans un autre plugin de contenu multimédia, ou être 10 mis en oeuvre sous la forme d'une page web de type AJAX, aspx, php, jsp ou autre. Enfin, ce programme est exécuté dans une opération 360, jusqu'à ce que la fin de l'exercice soit déterminée. 15 La figure 5 représente un exemple de mise en oeuvre de l'opération 360. Cette implémentation commence en 500 par la réception des données de l'exercice telles que fusionnées à l'opération 340. Ces données correspondent à l'ensemble des paramètres globaux de l'exercice, ainsi que 20 la déclaration de chacun des objets d'interaction et des questions de l'exercice, avec leurs identifiants correspondants. Dans une opération 505, une variable Curr Q_id reçoit l'indice de la première question de l'exercice. Ensuite, le contrôleur 24 lance une boucle d'exécution de l'exercice. 25 Cette boucle commence dans une opération 510 avec une fonction Displ() qui affiche les informations relatives à la question courante de l'exercice. En effet, un exercice peut comprendre plusieurs questions. La progression dans chaque exercice est conditionnée par l'obtention d'une réponse correcte à chaque question courante, jusqu'à ce qu'il n'y ait 30 plus de question. Parmi les informations relatives à la question courante, il y a, lorsque c'est nécessaire, la remise à zéro du décor et des éléments d'interaction de l'exercice, conformément à ce qui est décrit pour chaque question dans la deuxième partie du fichier 20. Cette remise à zéro peut être omise lorsque les questions sont prévues pour être enchaînées. C'est par exemple le cas lorsqu'une première question prévoit de réunir toutes les cartes paires, et que la deuxième question prévoit par exemple de réunir toutes les cartes multiples de trois : il n'est pas nécessaire de remettre toutes les cartes dans leur emplacement de départ, et la position de fin d'une question peut ainsi servir de position de départ à une question suivante. Une sous-boucle 515 de détection d'évènement est alors lancée, dans laquelle le contrôleur 24 attend qu'une action saisie par une interface d'entrée utilisateur soit réalisée. Un exemple d'une telle action est la réalisation d'un "glisser-déplacer" d'une carte vers un emplacement donné. Tant que cette opération 515 ne détecte pas d'action, rien ne se passe. Lorsqu'une action est détectée, un test est réalisé dans une opération 520 pour déterminer si cette action est une action d'interaction simple, de type clic sur un élément du décor, sur un bouton d'aide, ou une opération de déplacement d'un élément d'interaction, ou si cette action constitue une réponse à une question, qu'il faut donc vérifier. Dans le premier cas, il s'agit de modifier l'interface graphique de l'exercice et/ou émettre 25 un son ou un autre retour à l'utilisateur en réponse à l'interaction. Cela est réalisé par la fonction Displ() dans une opération 525. Dans le deuxième cas, une fonction Upd_Glob_Var( est lancée dans une opération 530. Les exercices de l'invention sont prévus pour être exécutés dans des environnements 30 applicatifs principalement destinés à l'affichage et à la présentation, comme le Flash ou autre environnement de ce type. Dans ces conditions, les possibilités de programmation sont limitées, et il n'est pas possible de maintenir des variables globales de manière simple. Par variable globale, on entend toute information qui est utile à l'exercice, comme le nombre de cartes dans une zone d'arrivée, la somme des valeurs des cartes posées dans une zone d'arrivée, etc. Ce problème est contourné en recalculant à chaque interaction une quantité choisie de valeurs. Ainsi, le fait de calculer des valeurs correspondant aux variables globales à chaque interaction détectée permet de compenser l'absence de variables globales à proprement parler. Les valeurs à calculer à chaque interaction sont définies par les données de l'exercice. Ainsi, chaque exercice appartient à une famille type, à laquelle est associée un ensemble de variables à calculer à chaque interaction. 15 Parmi les types d'exercices possibles, on compte : - les exercices à cartes à correction immédiate ou différée, - les exercices à boutons à correction immédiate ou différée, - les exercices à coloriage à correction immédiate ou différée, et - les exercices à zone de texte à correction immédiate ou différée. 20 Pour les exercices à cartes à correction immédiate ou différée, les variables globales qui sont calculées à chaque interaction comprennent : - un tableau des identifiants de cartes en fonction de l'emplacement de chaque carte, - un tableau des valeurs des cartes en fonction de l'emplacement de chaque carte, 25 - une somme des valeurs des cartes en fonction de leur emplacement, - etc. Pour les exercices à boutons à correction immédiate ou différée, les variables globales qui sont calculées à chaque interaction comprennent : 30 - un tableau des valeurs des boutons affichés, classés par identifiant croissant, - un tableau de l'état d'activation des boutons affichés, classés par identifiant croissant, - un nombre de boutons activés/modifiés, 10 - etc. Pour les exercices à zone de texte, les variables globales qui sont calculées à chaque interaction comprennent : - un tableau des chaînes de caractères affichées dans chaque zone de texte, 5 - un nombre de zone de texte non vides, - un caractère courant, - etc. Une fois ces variables mises à jour, une fonction Resp() détermine dans une 10 opération 535 si l'interaction détectée implique une réponse à une question ou pas. L'interaction détectée peut être de plusieurs natures. Cependant, quelque soit l'interaction, les données d'interaction ont pour effet de modifier les données de valeur d'un élément donné. 15 En effet, l'interaction peut consister à changer la valeur d'une carte, ou l'état d'un bouton, ou à entrer une chaîne de texte. Il apparaît alors clairement qu'il s'agit de changer les données de valeur d'un élément donné, c'est-à-dire la carte, la chaîne de texte ou le bouton. Lorsque l'interaction consiste à associer une carte à une zone donnée, 20 la situation ne diffère pas : ce sont les données de valeur de la zone qui sont modifiées, pour recevoir un identifiant de la carte en question. Si l'interaction détectée n'implique pas une réponse, alors il s'agit d'un exercice à correction différée. Il s'agit donc uniquement d'afficher l'interaction, via l'opération 525. 25 Selon l'exercice cette opération peut comprendre la vérification de certaines conditions en fonction de l'exercice. Par exemple, si l'exercice est à correction différée, et que la question est de réunir des cartes sur lesquelles sont inscrites des voyelles, l'opération 525 peut émettre un message lorsqu'une consonne est sélectionnée, pour aider l'utilisateur. 30 Dans le cas d'un exercice à correction immédiate, toute interaction constitue une réponse, et est évaluée instantanément. Par exemple, dans l'écran représenté sur la figure 1, la question est "Mets dans le filet tous les poissons portant des nombres pairs". Cet exercice est un exercice de type carte à correction immédiate, pour lequel il est vérifié à chaque carte déposée dans un filet si elle est au bon endroit. Dans le cas d'un exercice à correction différée, c'est l'appui sur un bouton spécifique, indiquant que l'utilisateur a terminé, qui déclenche la détection d'une réponse. Ensuite, une fonction Test() est lancée dans une opération 540 pour corriger la réponse. En fonction de la variable Curr Q_id, la fonction Test() va analyser si la réponse qui a été formulée par l'utilisateur est correcte. Pour cela, la fonction Test() va réaliser un ou plusieurs tests décrits dans la troisième partie du fichier 20, et désignées par la variable Curr Q_id. Ces tests peuvent être basés sur les valeurs de certains des éléments d'interaction, ou sur des données de valeur désignant l'association de deux éléments d'interaction entre eux. Ici encore, comme l'environnement est principalement graphique, la fonction Test() va d'abord analyser syntaxiquement les formules des tests désignés par la variable Curr Q_id, afin de les transcrire en code analysable dans l'environnement d'exécution. Ensuite, sur la base des variables globales mises à jour dans l'opération 530 et des tests retranscrits, la fonction Test() détermine si la ou les réponses est correcte. D'une manière pratique, divers tests peuvent être réalisés en fonction de l'exercice : - pour une question qui consiste à calculer la sommes de cartes et à l'inscrire dans une carte de résultat, ce sont les données de la valeur de cette carte qui vont être testées ; - pour une question où les cartes paires doivent être réunies dans une zone particulière, ce sont les données de valeur indiquant l'association carte-zone qui vont être testées, - pour une question où un texte particulier doit être inscrit dans une zone de texte, ce sont les données de texte qui vont être testées, - pour une question où certains boutons doivent être activés en fonction de leur valeur, ce sont les états des boutons qui vont être testés, - etc. Typiquement, la fonction Test() comprendra un nombre de tests plus importants pour un exercice à correction différée que pour un exercice à correction immédiate. En effet dans un exercice à correction immédiate, une seule réponse est testée avec chaque interaction, alors qu'un exercice à correction différée la fonction Test() corrige toutes les réponses. En sortie de la fonction Test°, une valeur indique si la réponse est correcte ou fausse. Cette valeur est testée dans une opération 540. S'il y a eu une erreur, alors la fonction Displ° est appelée pour afficher un message correspondant dans une opération 555, et la boucle reprend en 510. En variante, l'opération 555 peut réinitialiser totalement l'interface graphique, ou simplement indiquer l'erreur. Si la réponse est correcte, la variable Curr Q_id est incrémentée dans une opération 560. Cela permet de passer à la question suivante de l'exercice. Ensuite, un test est réalisé par une fonction Fin() dans une opération 560 pour déterminer si l'exercice est terminé. Ce test peut par exemple consister à analyser si la variable Curr_Q_id correspond à un 20 indice de question ou pas, ou à regarder le nombre de réponses (et donc de questions) dans la table de vérité. S'il reste une question, alors la boucle reprend en 510 avec l'affichage des données relatives à cette question, et l'attente d'une réponse. Sinon, l'exercice se termine en 570, avec l'émission optionnelle d'un message de félicitation à l'utilisateur. 25 REVENDICATIONS1. Dispositif électronique d'apprentissage personnel, comprenant un contrôleur (24) propre à commander un moteur d'affichage d'une interface graphique, en fonction de données d'exercice et en fonction de données d'interaction saisies par l'utilisateur, via une interface d'entrée, caractérisé en ce que les données d'exercice comprennent : - une pluralité de jeu de données d'élément de contexte, comprenant pour chaque jeu des données de présentation et des données de valeur, - un jeu de données d'apprentissage, comprenant des données de question, des données de test et des données de validation, l'interface d'entrée (10) permettant à l'utilisateur d'entrer des données d'interaction, pour déplacer un élément de contexte ou pour modifier les données de valeur d'un élément de contexte, le contrôleur (24) étant agencé pour sélectionner des données de question courantes, et, en réponse à des données d'interaction désignant au moins un élément de contexte donné, étant en outre agencé pour : - commander le moteur pour modifier l'interface graphique en fonction des données de présentation de l'élément de contexte donné pour représenter l'interaction 20 désignée par les données d'interaction, - calculer des données de variables globales en fonction des données d'interaction, des données de valeur des éléments de contexte, et des données de question, - exécuter sélectivement une fonction de test, ladite fonction de test comprenant : o la sélection des données de tests et des données de validation désignées par 25 les données de question courantes, o la détermination que les données de valeur associées à l'élément de contexte donné satisfont les données de validation sélectionnées, en fonction des données de variables globales calculées et des données de test sélectionnées, o l'émission d'un message sonore et/ou graphique en fonction de cette 30 détermination, et la mise à jour sélective des données de question courantes et, o la terminaison de l'exercice en fonction des données de question courantes. 16 2. Dispositif selon la revendication 1, dans lequel le contrôleur (24) est agencé pour exécuter la fonction de test lorsque les données d'interaction indiquent une réponse. 3. Dispositif selon la revendication 2, dans lequel le contrôleur (24) est agencé pour déterminer si les données d'interaction indiquent une réponse en fonction des données de question. 4. Dispositif selon l'une des revendications 1 à 3, dans lequel le contrôleur (24) est agencé pour afficher un message d'erreur lorsque la fonction de test détermine que les données de valeur associées à l'élément de contexte donné ne satisfont pas les données de validation déterminées, en fonction des données de variables globales calculées et des données de test déterminées. 5. Dispositif selon l'une des revendications 1 à 4, dans lequel les éléments de contextes sont choisis dans le groupe comprenant une carte, un bouton, une zone de texte, et une zone de dépôt de carte. 6. Dispositif selon l'une des revendications 1 à 5, dans lequel les données de questions comprennent une indication textuelle et/ou sonore de la question. 7. Dispositif selon l'une des revendications 1 à 6, dans lequel les données de présentation comprennent des données graphiques. 8. Dispositif selon la revendication 7, dans lequel les données de présentation comprennent des données sonores.