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 !

Qui a inventé les algorithmes ?

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

Bonne nouvelle, après seulement 3 chapitres de ce MOOC, vous avez déjà codé votre premier programme. Et oui, coder un programme, ce n’est pas forcément écrire des lignes de formules étranges sur un écran d’ordinateur en noir et blanc. C’est aussi créer un portrait sur Scratch par exemple. Plutôt excitant !

Et si nous prenions maintenant un peu de recul sur les étapes de la création d’un programme ? Comment organiser les éléments qui le composent ? Pourquoi parle-t-on parfois de programmes et d’autres fois d’algorithmes ? Mettons un peu d’ordre dans tout cela.

A la découverte des algorithmes

Coder, comme vous venez de le faire avec Scratch, c’est tout simplement le fait de donner des instructions précises à l’ordinateur (avec les différents blocs de Scratch par exemple), qu’il devra ensuite exécuter pour donner le résultat que vous souhaitiez obtenir (votre portrait !). Coder est donc l'activité qui permet de voir se concrétiser ses idées. Mais rien n'empêche ces idées de naître et de mûrir en dehors de toute forme de programmation (et donc même sans ordinateur !), en utilisant simplement le raisonnement comme moteur principal.

Ce raisonnement, associé à la nature mécanique des ordinateurs et de leur fonctionnement, constitue une partie de la pensée informatique et permet de mettre au point les algorithmes qui font aujourd'hui tourner une grande partie de notre monde.

Un Algor... quoi ? C'est un héros de manga ?

Pas tout à fait. ;)

Un algorithme est une série d'instructions. Tout simplement ! Pour illustrer cette notion d'algorithme, prenons tout de suite un exemple qui devrait parler à tous les gourmands, petits et grands : une recette de cuisine. Après tout, il s'agit bien d'une série d'instructions à appliquer pour obtenir un résultat.

Et les analogies entre une recette de cuisine et un algorithme peuvent aller encore plus loin...

Une recette peut être diffusée dans le monde ou bien elle peut être gardée secrète. Elle peut être écrite à la main ou transmise dans la culture populaire. Mais tant qu'elle n'est pas incarnée par des actions en cuisine, elle reste un concept. En informatique, ce concept est un algorithme. Il peut rester écrit à la main, sous une forme plus ou moins formelle mêlant des explications et des symboles mathématiques. Tant qu'il reste sous cette forme, sans être appliqué, il est un savoir qui ne produit aucun résultat. Par contre, la puissance d'un algorithme se manifestera quand il sera interprété et qu'il sera concrètement déroulé. Sera-t-il déroulé par un humain ou par une machine ? Cela ne change rien au résultat, tant que l'humain ne fait pas d'erreur en l'appliquant (et on peut évidemment compter sur la machine pour appliquer l'algorithme avec une rigueur absolue !).

Pour la vitesse d'exécution, par contre, c'est autre chose… Pour un algorithme simple, il peut être interprété à la main par un être humain, en suivant les étapes et en notant les résultats intermédiaires, s’il y en a. C'est le cas, par exemple, pour l'algorithme de la division que les élèves peuvent appliquer systématiquement une fois qu'ils l'ont appris. Ils peuvent alors dérouler n'importe quelle division à la main, en appliquant rigoureusement les étapes de l'algorithme. Ils notent les valeurs intermédiaires et recommencent les opérations jusqu'à ce que les conditions d'arrêt du calcul soient atteintes. Pour un algorithme plus compliqué cela peut devenir délicat et pour la plupart des algorithmes qui se déroulent en ce moment autour de nous, cela devient impossible à envisager. Les machines, par contre, peuvent faire dérouler ces algorithmes à des vitesses chaque année plus grandes.

Pour que ces fameux algorithmes soient aujourd’hui exécutés par toutes ces machines, il faut donc réunir au moins deux conditions :

  1. Concevoir et écrire un algorithme qui permet d'atteindre le résultat visé.

  2. Traduire cet algorithme dans un programme que la machine peut appliquer.

Et si nous faisions le point ? Un algorithme c’est donc une méthode, décrite de manière assez claire et rigoureuse pour qu’elle puisse être appliquée sans ambiguïté par un humain, ou par une machine, ou même par un extra-terrestre (s’il peut lire le Français… et encore… on n’a pas besoin de tout le dictionnaire, mais juste de quelques mots). Un programme, c’est un algorithme qui a été traduit en instructions compréhensibles par la machine, pour que la machine puisse l’exécuter (comme nos blocs Scratch par exemple).

Qui a inventé les premiers algorithmes ?

Mais revenons à nos algorithmes. Pour comprendre l’origine de ce mot, il faut aller faire un tour vers l’an 800, en Perse... et si nous allions à la rencontre de monsieur “Algorithme” ?

 

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