Mis à jour le 11/07/2017
  • 15 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Comprenez les langages en jouant au robot

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Changez de langage

Un langage formel (un langage informatique) se distingue de plusieurs manières d’une langue naturelle (celle que nous parlons nous, humains). Un langage informatique est très spécialisé. Son vocabulaire est limité. Ses règles de grammaire sont simples. Ce qui n'est vraiment pas le cas d'une langue naturelle, comme le Français par exemple.

Prenons le langage suivant, formé de quatre mots : « nord », « sud », « est » et « ouest » et d’une construction, la séquence, qui permet de former des suites de tels mots. Ce langage permet d’indiquer un chemin à suivre sur une grille carrée.

Par exemple l’expression « nord, nord, nord, est, est, est, sud, sud, sud, ouest, ouest, ouest » indique de se déplacer de trois carreaux vers le nord, puis de trois carreaux vers l’est, puis de trois carreaux vers le sud et enfin de trois carreaux vers l’ouest, dessinant ainsi un carré sur le sol.

Ce langage est équivalent à celui de notre jeu du robot précédent en remplaçant, par exemple, « nord » par « un pas en avant ».

Mais on peut aussi utiliser un langage très différent pour exprimer nos algorithmes de déplacements. Par exemple, un langage dans lequel l'enfant qui imitera le robot ne pourra que :

  • avancer d’un pas

  • tourner à gauche d’un quart de tour

  • tourner à droite d’un quart de tour

Dans ce langage, notre algorithme pour dessiner un carré se traduirait alors par « avancer, avancer, avancer, tourner-à-droite, avancer, avancer, avancer, tourner-à-droite, avancer, avancer, avancer, tourner-à-droite, avancer, avancer, avancer, tourner-à-droite ». Et si on ne veut pas tout écrire, on peut à nouveau ajouter les boucles à notre langage et les utiliser dans le programme (par exemple « répéter 3 fois avancer » puis « tourner-a-droite », etc.)

A vous de jouer !

Et maintenant, à vous de pratiquer ce jeu : trouvez des personnes/enfants qui se prêtent au jeu, et utilisez les deux langages. Comparez les deux langages. Quels sont leurs avantages/inconvénients ? Quelles sont les différences majeures que vous observez ? Qu'en est-il des erreurs dans chaque cas ?

En réalisant cette activité, voici quelques éléments que vous devriez pouvoir explorer :

  • Apprendre à traduire un itinéraire d’un langage dans un autre.

  • Étudier les avantages et inconvénients de chaque langage. Que se passe-t-il par exemple, si vous introduisez une petite erreur exprès dans la séquence d’instructions, comme un « tourner à droite d’un quart de tour » à la place d’un « tout droit » ? Essayez ! Avec le langage « boussole » (nord/sud/est/ouest) vous verrez que l’erreur aura pour conséquence un décalage dans le déplacement mais que la boussole nous remettra dans le bon sens rapidement (sans pour autant réparer l’erreur). Avec le langage « avance/tourne » vous verrez que cette erreur va nous conduire vraiment très loin (toute une partie du chemin va pivoter et nous conduire très loin de l’objectif sur la grille !).

  • Mettre en évidence la redondance d’un langage – par exemple, « tourner-à-gauche » pourrait être remplacé par une séquence de trois « tourner-à-droite ». Ce n’est ni un avantage, ni un inconvénient, mais simplement une observation. Cela veut dire qu’on pourrait se contenter d’un langage qui ne comporterait en fait que deux instructions élémentaires : “tourner-à-droite” et “avance d’un pas”. On pourrait alors construire un groupe d’instructions qu’on appellerait “tourner-à-gauche” et qui serait fabriqué avec la boucle “répète 3 fois tourner-à-droite”. Ainsi, avec seulement deux instructions de base, on peut faire tous les déplacements que permettent les autres langages !

En résumé

Et si nous faisions le point ? Nous avons vu ce qui fait la différence entre un algorithme et un programme. Nous avons même utilisé des langages de programmation différents, qu’ils soient utilisés par des machines (comme Scratch) ou par des humains (comme le langage du jeu du robot). Et pour mieux en comprendre les origines, nous avons fait la rencontre de Muhammad Al Khwarizmi et de Grace Hopper. Entre ces deux personnages, l’histoire de l’informatique est particulièrement riche et pleine de rebondissements ! C’est ce que nous allons découvrir, ensemble, dans les prochaines semaines.

Exemple de certificat de réussite
Exemple de certificat de réussite