COMPRENDRE-INFORMATIQUE.COM

Deviens autonome dans l’utilisation de l’informatique et comprends ce que tu fais !

Qu’est-ce qu’un algorithme ?

Il est bien possible que tu aies déjà entendu le terme « algorithme » quelque part. Les algorithmes sont partout dans notre quotidien, même si on ne s’en rend pas toujours compte. Mais qu’est-ce qu’un algorithme, au juste ? Ne t’inquiète pas si tu n’y comprends rien. Dans cet article, je vais t’expliquer de façon simple et accessible ce qu’est un algorithme, son rôle et son importance dans le domaine de l’informatique.

Les algorithmes : Une recette de cuisine?

Pour comprendre ce qu’est un algorithme, imagine que tu veux préparer un gâteau au chocolat. 🎂

Ah, tout de suite, je te sens plus éveillé-e !

Pour préparer ton gâteau, tu as besoin d’une recette. 📜 Cette recette, c’est un ensemble d’instructions étape par étape qui te dit quoi faire, comment le faire et quand le faire pour réussir ton gâteau. Ce gâteau au chocolat succulent sera ainsi le résultat de la recette. Et pour le préparer, tu auras besoin d’ingrédients.

Eh bien, un algorithme, c’est exactement ça mais dans le monde de l’informatique.

Il s’agit d’un…

🧾 ensemble d’instructions qui dit à l’ordinateur…
🎯 quoi faire, …
🛠️ comment le faire
⌛ et quand le faire
🧩 pour résoudre un problème
📋 ou accomplir une tâche donnée.

Les ingrédients d’un algorithme sont des données.

Quand tu utilises ton ordinateur pour rédiger une lettre, surfer sur Internet ou encore regarder des vidéos, ton ordinateur va exécuter des algorithmes sans que tu t’en aperçoives. C’est comme quand tu vas au resto et que les cuisiniers préparent le plat que tu as commandé. Tu ne vois pas tout ce qui se passe, mais au final, tu reçois ton plat et bon appétit ! 🍽️

On pourrait ainsi dire que les algorithmes sont des recettes de cuisine pour les ordinateurs.

Un algorithme, ça ressemble à quoi ?

Ta recette de gâteau au chocolat, elle va ressembler à ça :

Elle comprend une liste d’ingrédients et une suite d’instructions qui se lit de haut en bas. ⬇️ L’ordre de ces instructions est donc primordial ! Si cet ordre n’est pas respecté, tu n’obtiendras pas le même résultat. Par exemple, si tu commences par saupoudrer le sucre glace sans avoir de gâteau, le résultat sera… ben, un plan de travail recouvert de sucre glace. Bravo ! 👏

Il en va de même pour un algorithme. L’ordinateur lit les instructions de l’algorithme dans l’ordre dans lequel il est écrit, c’est-à-dire de haut en bas. ⬇️

Bon, maintenant, je vais te montrer à quoi ressemble un algorithme. Et pour cela, imaginons un programme fictif d’inscription à un cursus d’études.

Mise en situation

Imagine que tu aimerais soumettre ta candidature à un cursus d’études. 🎓 Pour que ta candidature soit acceptée, il faut avoir obtenu une note d’au moins un 7 sur 10 dans plusieurs disciplines, peu importe la nature de ce cursus ou de ces disciplines. Mais ce n’est pas tout ! Il faut ensuite qu’un-e responsable de ce cursus approuve ta candidature. Ce programme informatique permettra également à ce-tte responsable d’approuver ou refuser les candidatures. Finalement, le programme t’inscrit (ou non) au cursus et t’envoie automatiquement un e-mail avec un retour positif (Youhou ! Tu pourras suivre le cursus ! 🎉) ou négatif (Tant pis ! Au moins, tu pourras passer plus de temps sur Netflix ! 🍿)

Voici à quoi ressemble l’algorithme de ce programme :

Il s’agit d’une représentation visuelle de l’algorithme d’inscription des candidats aux cursus sous force d’un diagramme de flux (ou Flowchart en anglais). En gros, ce genre de diagramme permet à un humain non informaticien de pouvoir lire et interpréter cet algorithme plutôt que de devoir lire du code qui lui sera de toute façon incompréhensible.

Tu peux donc lire cet algorithme de haut en bas en suivant le sens des flèches ⬇️ et le lire comme si tu étais le programme. Les rectangles 🟦 représentent des actions et les losanges 🔷 des conditions. Une condition est comme un sentier qui se sépare en deux et tu vas devoir choisir lequel emprunter en fonction de cette condition. J’ai utilisé le violet pour marquer les premières et dernières actions, mais cela n’a pas vraiment d’importance.

Interprétation

Je suis l’ordinateur et j’exécute cet algorithme. J’ai reçu une postulation accompagnée d’un bulletin de notes. J’évalue chacune de ces notes. Sont-elles toutes d’au moins 7 sur 10 ? Si oui, je transmets cette postulation à un-e responsable et j’attends sa réponse. Si ce-tte responsable approuve, alors j’inscris le-la candidat-e au cursus et lui envoie un e-mail positif, sinon je lui envoie directement un e-mail négatif. S’il y a au moins une note en dessous de 7 sur 10, je lui envoie également un e-mail négatif. Je termine ensuite le programme. Je suis une machine et j’exécute tout cela de manière automatique sans état d’âme. 🤖

Et ça ressemblerait à quoi en code ?

Pour ta curiosité, voici une version simplifiée de ce à quoi pourrait ressembler cet algorithme écrit par un-e développeur-se informatique (ici, en utilisant le langage de programmation Python) :

En réalité, un tel programme serait quand même plus long que ça, de l’ordre d’au moins quelques centaines de lignes.

Les développeurs informatiques sont ainsi des professionnels qui passent leurs journées (et même nuits, pour les plus passionnés) à écrire des recettes (algorithmes) pour l’ordinateur (bien que leur métier comprend aussi d’autres activités).

Écrit une seule fois, utilisable à l’infini

Tout comme une recette de cuisine, un algorithme est écrit une seule fois et peut être exécuté à l’infini ! ♾️ C’est ça qui fait la puissance d’un algorithme.

Mais un algorithme est rarement parfait !

Cependant, en pratique, il est rare qu’un algorithme soit parfait du premier coup et il sera souvent révisé plusieurs fois et mis à jour au fur et à mesure de son utilisation.

Typiquement, il arrive souvent que de nouvelles situations ou des exceptions n’aient pas été prévues dans cet algorithme. Le résultat est alors souvent un bogue (ou en anglais, bug) — qui est une erreur informatique ❌ — ou un résultat non conforme aux attentes. L’algorithme devra dans ce cas être mis à jour pour répondre à ces cas.

Par exemple, imagine que durant ton cursus scolaire, tu aies obtenu d’excellentes notes dans toutes les disciplines mais que tu aies participé volontairement à un cours optionnel dans lequel tu as obtenu la piètre note de 2 sur 10. Si l’algorithme décrit plus haut vérifie toutes les notes, alors il rejettera bêtement ta candidature car il n’aura pas été prévu pour exclure ces cours optionnels de ses considérations. Tu aurais été puni-e pour avoir volontairement choisi d’en faire plus que les autres ! Quelle ironie ! 🤯

⚠️ ATTENTION : Cela ne veut pas dire que tous les bogues sont causés par des cas non prévus dans l’algorithme ! Mais c’est en tout cas l’une des causes les plus fréquentes.

Quelle est la relation entre un programme et un algorithme ?

Un programme est un fichier qui contient un algorithme préécrit. Quand tu lances un programme, ton ordinateur va simplement exécuter l’algorithme qu’il contient.

Exécuter un programme, c’est comme commander un repas au restaurant :

Tu commandes un repas au serveur 🤵 (ordinateur 💻).
Celui-ci demande alors au cuisinier 👨‍🍳 (programme 📱) …
de préparer le plat 🍳 (exécution du programme ▶️), …
ce qu’il fera en suivant sa recette 📖 (algorithme 📃).

Ça a l’air simple, mais…

Des algorithmes, tu en utilises tous les jours sans t’en rendre compte. Par exemple, quand tu utilises un GPS pour te rendre à une destination, il se sert d’un algorithme pour trouver le chemin le plus rapide. Ou encore, quand tu fais une recherche sur Google, un algorithme classe les résultats pour te donner les plus pertinents en premier.

Tous ces exemples sont des programmes qui contiennent des algorithmes ! Qu’ils se trouvent sur un ordinateur de bureau, un téléphone portable, un GPS de voiture ou autre.

Mais créer un algorithme n’est pas toujours une tâche facile. Il faut faire en sorte que les instructions soient claires, précises et efficaces. C’est un peu comme si tu devais écrire une recette de cuisine qui sera utilisée par quelqu’un qui n’a jamais cuisiné auparavant. Tu dois donc veiller à ce que chaque détail, chaque étape soit bien explicite et accessible.

Et une des plus grandes difficultés est de devoir penser à tous les scénarios possibles car sinon, on peut se retrouver dans des situations telles que dans notre scénario fictif décrit plus haut d’une candidature refusée alors qu’elle répondait parfaitement aux critères d’éligibilité.

En résumé…

  • Un algorithme est comme une recette de cuisine pour l’ordinateur.
  • Il s’agit d’un ensemble d’instructions étape par étape qui dit à l’ordinateur quoi faire pour résoudre un problème ou accomplir une tâche.
  • Tu utilises des algorithmes tous les jours sans t’en rendre compte.

J’espère que cet article t’a aidé à comprendre ce qu’est un algorithme. N’oublie pas que l’informatique est partout autour de nous, et comprendre ses principes de base peut t’ouvrir à un monde de possibilités !

Cet article t'a plu ? Partage-le !

4 réponses à “Qu’est-ce qu’un algorithme ?”

  1. Bonjour. Merci pour cette recette ludique sur les algorithmes ! J’ai un blog culinaire sur l’alimentation sans gluten et sans produits laitiers. Du coup, je comprends mieux la logique informatique ! Merci 🙂

  2. Merci pour cet article ! Une bonne initiation à tous ces algorithmes. Cela paraît compliqué quand on ne s’y penche pas plus sérieusement mais cet article est la preuve que, au moins les bases, peuvent être accessibles !

Laisser un commentaire