Questions fréquentes

Le logiciel AlgoTouch, et en particulier le langage de programmation associé, est destiné à des programmeurs débutants. Son objectif est de découvrir les notions d’algorithme, de machine, de donnée et de langage. Dans ce but, le langage est volontairement limité. AlgoTouch n’est pas destiné à être utilisé par des programmeurs confirmés. Il existe de nombreux langages de programmation avec différentes spécificités qui peuvent être utilisés.

Sur cette page, nous répondons à quelques questions fréquemment posées au sujet d’AlgoTouch.

Le système AlgoTouch utilise uniquement des variables globales pour des raisons de simplicité. En effet, une variable globale représente une donnée concrète dans la mémoire de la machine, c’est à dire à une adresse particulière. La notion de variable locale qui est associée à une procédure ou une fonction représente déjà une abstraction. En effet, c’est une variable qui n’est visible (utilisable) uniquement dans le corps de la procédure. Mais ce qui est plus difficile à faire comprendre, c’est que cette variable est “créée” lors de l’appel de la procédure et qu’elle “disparaît” lorsque la procédure se termine. Il nous semble que ce mécanisme dépasse la notion de mémoire que l’on souhaite présenter à des débutants. En effet, la mise en place de variables locales nécessite un mécanisme de gestion de la mémoire caché au programmeur qui consiste à allouer dynamiquement de l’espace mémoire. Ce mécanisme sera expliqué dans des cours de langage et de compilation.

La notion de macro permet d’introduire de façon simple la notion de morceau de programme auquel on donne un nom et qui peut être réutilisé. Les notions de fonctions et procédures sont des constructions plus complexes et plus abstraites. Elles introduisent notamment la notion de paramètres et les questions qui se posent à leur sujet: qu’est-ce qu’un paramètre, notions de paramètre formel versus paramètre effectif, passage de paramètre (par valeur, par référence, …). Ces notions doivent être enseignées lors d’un cours de langage de programmation alors que notre but est d’aborder des notions plus simples.

Le principe de base d'AlgoTouch est de programmer par manipulation directe des données et de laisser le système produire le code automatiquement. De cette façon, l'utilisateur d'une part, voit toujours ce qu'il fait et d'autre part, n'a pas besoin de connaître précisément la syntaxe du langage de programmation sous-jacent. Il est reconnu que les erreurs de syntaxe sont les erreurs les plus courantes et les plus frustrantes pour les novices en programmation. Pouvoir éditer le code produit permettrait dans certains cas de faciliter la tâche du programmeur mais le risque est alors grand que le programmeur utilise le logiciel comme un outil traditionnel avec les inconvénients expliqués plus haut. Le système permet toutefois de modifier le programme en cours de différentes façons :
  • dans une macro boucle, chaque section peut être effacée puis ré-enregistrée ;
  • on peut ajouter du code dans chacune des sections d'une macro. C'est très utile par exemple pour ajouter une ou plusieurs instructions d'initialisation dans une section From ;
  • une fois le prototype du programme réalisé avec AlgoTouch, il est conseillé de l'exporter dans un des langages proposés pour le finaliser.

C’est une question importante puisque notre but étant de démystifier le fonctionnement des ordinateurs, les tableaux à deux dimensions sont l’occasion d’évoquer la façon de stocker les images par exemple.

Cependant, la mise en oeuvre de tableaux à deux dimensions avec AlgoTouch pose un certain nombre de problèmes pratiques : visualisation d’un tableau de taille raisonnable (10 par 10), gestion des index.

Par ailleurs, d’un point de vue pédagogique, il nous semble que la notion de tableau à une seule dimension est déjà relativement complexe et qu’elle offre déjà l’occasion de traiter de nombreux algorithmes. La transition vers un système offrant la possibilité de tableaux à dimensions multiples ne devrait pas poser de problèmes majeurs puisque les notions importantes auront déjà été vues, en particulier la notion d’index.

L'utilisation d'un TBI (Tableau Blanc Interactif) est très pratique pour un enseignant pour les raisons suivantes :
  • l'enseignant reste face à ses élèves pendant la démonstration. En effet, toutes les manipulations peuvent s'effectuer "au doigt". Dans le cas de saisie de texte, pour nommer une variable ou une macro par exemple, un clavier apparaît sur le tableau ;
  • pour illustrer le fonctionnement d'un programme, l'enseignant peut montrer ce qu'il se passe pendant l'exécution pas à pas du programme qu'il aura préalablement préparé ;
  • pour construire un programme, l'enseignant peut montrer les différentes opérations à réaliser (ou faire appel à un élève) ;
  • la manipulation sur ce grand tableau par des élèves donne un aspect ludique très apprécié notamment par les plus jeunes (collégiens ou même écoliers).
AlgoTouch permet de transformer les programmes réalisés dans différents langages de programmation. Les codes produits sont directement exécutables dans les environnements adaptés.
  • Exportation en Java : transforme la macro courante en programme Java (extension .java), en substituant chaque appel de macro par le code Java correspondant.
  • Exportation en Python : transforme la macro courante en programme Python (extension .py), en substituant chaque appel de macro par le code Python correspondant.
  • Exportation en C/C+ : transforme la macro courante en programme C++ (extension .cc), en substituant chaque appel de macro par le code C++ correspondant. En fait, le programme est un programme en C dans lequel les opérations de saisie et d’affichage utilisent les instruction C++ cin et cout.
  • Exportation en C : transforme la macro courante en programme C (extension .c), en substituant chaque appel de macro par le code C correspondant.
L'utilisateur peut donc utiliser AlgoTouch pour concevoir la trame de son programme, puis le raffiner dans l'environnement de son choix.
Défiler vers le haut