Accueil > STORM-Intelligence > Découverte de la robotique et de la programmation : : > < Apprendre à programmer avec Logos
RCX-Storm a le plaisir de vous présenter LogoS de Jacco Bikker. C’est un jeu comme nous les aimons : un jeu pour apprendre à réfléchir et à programmer. Vous pouvez le télécharger à l’adresse suivante : www.bik5.com/logos.
Ce jeu est directement inspiré du LOGO de Seymour PAPERT. Ses ouvrages ont inspirés et soutenus le projet RCX-STORM.
Avec Logos nous allons vous faire Découvrir les 4 notions de bases en programmation :
Bien qu’il soit conçus pour être utilisé dès le plus jeune âge, il nécessite quelques explications pour une prise en main plus facile.
Dans LogoS, vous apprenez à un petit scarabée à rentrer jusqu’à sa maison.
Simple.
Pour cela vous disposez d’icones (ou de cartes) pour lui indiquer son chemin.
Vous disposez de 9 cartes que vous disposez sur une ligne (de commande). Vous êtes limité à 3 lignes de commande. Mais vous pouvez les faire se répéter.
Ces 9 commandes sont :









Les 4 premières commandes sont les plus facile à utiliser. Placez quatre cartes ’gauches’
sur la ligne de commande pour apprendre au scarabée à se déplacer de quatre positions à gauche, et ainsi de suite.
Les quatre cartes suivantes sont des commandes ’relatives’ :
Avancer
signifie « aller tout droit dans la direction du nez du scarabée ». Si le scarabée a son nez vers le haut, la carte avancer
le fera aller en direction du sommet de l’écran.
La dernière carte
indique au scarabée de s’arrêter lorsqu’il rencontre un obstacle. Sinon il se met en colère s’il rencontre un obstacle. Vous utilisez ici les boucles Jusqu’à.
La dernière chose à savoir est l’utilisation des lignes de commandes. Le numéro au début de la ligne indique le nombre de répétition de la suite de commandes que vous avez mis dessus.
De cette façon vous vous économisez du temps et de la place en répétant ce que vous lui avez déjà indiqué. Vous vous initiez à l’utilisation des boucles Tant que.
Voilà, à vous de jouer maintenant.
L’ordinateur est un outil, un exécutant pointilleux, méticuleux, très rapide, mais totalement dénué d’imagination et d’initiative.
La machine ne fait rien par elle-même ;
elle ne fait qu’appliquer à la lettre des ordres simples et précis.
L’ordinateur reçoit des instructions énoncées clairement, sans équivoque, dans un langage strict qui qualifie l’action souhaitée.
Il exécute ces instructions séquentiellement, sans erreur, sans rechigner, et sans intelligence.
Une suite de telles instructions est un programme.
La programmation consiste à déterminer la démarche permettant d’obtenir, à l’aide d’un ordinateur, la solution à un problème donné.
Cette marche à suivre s’appelle un algorithme.
Concevoir un algorithme, c’est avant tout :
analyser un problème afin de définir et d’énoncer l’ensemble des actions et des objets à manipuler pour obtenir un résultat.
donc : trouver le cheminement logique des tâches à fournir à l’ordinateur pour qu’il les exécute. Pour aborder la programmation, prenons un exemple tangible que nous allons traduire en algorithme.
Comme si nous nous adressions à un scarabée (l’ordinateur), nous allons :
Mais pour résoudre notre problème, nous devons prendre certaines décisions qui auront une influence sur l’allure générale de notre algorithme.
Supposons que, pour préparer notre parcours, nous soyons en possession des objets suivants :
En fixant la liste des objets de l’environnement, nous définissons un univers, une base de travail. Nous sommes ainsi en mesure d’établir une liste de toutes les actions à mener pour résoudre le problème et de construire la marche à suivre permettant d’obtenir un parcours pour aider le scarabée à retourner chez lui.
Lister les opérations :
Cette énumération est une description de toutes les actions nécessaires pour aller à la maison.
Il faut faire une chose à la fois :
chaque action élémentaire est une étape incompressible du problème donné.
En définissant l’ensemble des actions possibles, nous utilisons un langage minimal qui permettra de ramasser ce cube : ce langage est composé de différents types de mots :
L’étendue du langage (le nombre de mots qu’il contient) est déterminée par l’environnement qu’on s’est fixé.
En suivant cette liste, tout semble y être, mais dans le désordre.
Pour arriver à la maison, il reste à ordonner la liste.
Ordonner la liste des opérations :
L’exécution de l’ensemble ordonné de ces tâches
permet bel et bien d’arriver à la maison.
Le programme (ou plutôt l’algorithme) fonctionne !
Cet algorithme va nous servir à préciser quatre notions de base importantes en programmation :

la notion de variable
Nous avons vu que pour arriver jusqu’à la maison, nous avons d’abord déterminé les objets dont nous avions besoin : avancer d’un case, contourner un obstacle, etc.
De la même manière, pour concevoir un programme, il va nous falloir non pas « prendre » des données numériques, mais définir ces données, ainsi que tout objet dont nous aurons besoin.
Cette définition consiste à nommer ces objets et à décrire leur contenu, afin qu’ils puissent être stockés en mémoire.
Une variable est définie par deux éléments :
La notion de variable n’est pas présente dans Logo.

Le scarabée va se poser une question pendant le déroulement du programme :
Est-ce que je rencontre un obstacle ou non ?
En fonction de la réponse à cette question, il va bifurquer dans son déroulement et choisir de faire autre chose.
Revenons à l’algorithme du scarabée qui veut rejoindre sa maison.
La bifurcation permet de programmer un choix : en plaçant une condition derrière le terme Avancer si, le scarabée est face à un choix : si il se cogne que doit-il faire ? s’arrêter.
Nous n’avons pas placé une condition sinon dans l’algorithme du chemin du scarabée puisque si il ne se cogne pas il continue son chemin.
C’est la seul condition disponible dans Logo.
Avec un langage de programmation classique nous aurions :
si (condition) // si la condition est VRAIE
// faire
ceci ou cela ; // instructions
sinon
// sinon (si la condition ci-dessus est FAUSSE)
// faire
ceci ou cela ; // instructions

Pour aborder cette notion de répétition ou de boucle, nous allons améliorer l’algorithme. Nous remarquons qu’il y a des séquences qui se répète. N’y aurait-il pas un moyen de les multiplier ?
Ce moyen s’appelle la boucle.
La marche à suivre devient alors :

En donnant un nom à un bloc d’instructions, nous pouvons définir un sous-programme, appelé fonction ou méthode dans les langage de programmation classique.
Une fonction ressemblerait à une petite usine
(on y entre des matières premières qui ressortent transformées...)
ou plutôt à une machine à l’intérieur d’une usine (le programme...)
Certains algorithmes peuvent être appliqués à des problèmes voisins
en modifiant simplement les données pour lesquels ils ont été construits.
En faisant varier certaines valeurs, le programme fournit un résultat différent du précédent.
Ces valeurs, caractéristiques du problème à traiter, sont appelées paramètres du programme.
Pour comprendre concrètement ce concept, nous allons reprendre notre algorithme du retour à la maison.
Si Logo le permettait nous créerions une fonction Avancer en diagonale qui nous serais très utile.
Voilà un rapide aperçu de ces 4 notions fondamentales avec LOGO.
Sachant que la notion de variable et de fonction ne sont pas disponible et que la notion de bifurcation et réduite sa plus simple expression. Il ne reste que la notion de boucle qui se révèle fort utile pour aller le plus loin possible dans les différents niveaux.
C’est 4 notions sont mieux exploitées avec SCRATCH et NXT-G.
Voir en ligne : Site Logo de Jacco Biker