Algorithmique – cours- partie 1
L’algorithmique informatique
Rappel : nous avons vu dans notre vidéo d’introduction que programmer signifiait donner des instructions à une machine et que celle-ci ne comprenait que certains langages qui lui étaient spécifiquement destinés.
Mais que vient faire l’algorithmique dans tout cela ? Si vous programmez vous faites des algorithmes, c’est aussi simple que cela. En effet, si l’on prend la définition du terme :
Un algorithme est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné.
Et c’est exactement ce que fait un programme informatique, mais dans un langage compris par une machine.
La première tâche, penser les instructions, ne nécessite pas particulièrement un ordinateur, elle est purement théorique et se fait en amont du travail avec la machine.
Steve Jobs, cofondateur d’Apple, affirmait que :
tout le monde (…) devrait apprendre à programmer car cela vous apprend à penser.
Cette citation peut, au premier abord, paraître invraisemblable. Pourtant elle est factuellement vraie. En effet, un ordinateur étant fondamentalement bête, c’est à nous de lui expliquer comment penser correctement et apprendre à penser à une machine c’est d’abord arriver à penser correctement soi même. Par conséquent, l’apprentissage de la programmation peut être un outil pédagogique formidable même si l’on ne se destine pas à en faire son métier. Cela demande d’allier logique et rigueur de la syntaxe tout en ayant une dimension concrète que n’apporte pas vraiment les mathématiques seules, fondamentalement abstraites, ainsi que créatrice.
Certaines notions de mathématiques pourront trouver une application pratique lorsqu’elle est nécessaire pour réaliser un programme. Par exemple, la programmation de jeux vidéos, même simples, demandera très fréquemment d’utiliser des formules et calculs mathématiques que l’on étudie à l’école et au collège (mais cela est valable aussi pour le français et d’autres matières comme nous le verrons avec certains programmes Scratch proposés).
Algorithmes et algorithmique
Un algorithme, c’est tout simplement une façon de décrire dans ses moindres détails comment procéder pour faire quelque chose
_Gérard Berry , chercheur en science informatique
Même si le terme semble faire référence à quelque chose de très technique et avec une connotation mathématique, c’est quelque chose que vous avez déjà fait. On vous a déjà demandé quel était le chemin pour aller à la boulangerie ou au cinéma et la personne a pu s’y rendre grâce à vos explications ? Vous avez fait un algorithme. Vous êtes arrivés à fabriquer l’étoile noire de Star Wars en Lego d’après les instructions trouvées dans la boite ? Vous avez suivi un algorithme. De même, si vous avez déjà essayé de suivre une recette de cuisine et que votre gâteau a été une réussite, vous avez suivi un autre algorithme : la recette.
Un algorithme en informatique est comme une recette que l’on écrit et qui sera suivi par une machine.
Par conséquent lorsque l’on programme, si la maitrise d’un langage informatique est importante, les instructions que l’on donne à une machine le sont bien plus car si la suite d’instructions que l’on donne ne peut pas aboutir au résultat donné pour une raison ou pour une autre de conception, le programme ne fonctionnera pas ou mal. De même si une recette de gâteau oublie de mentionner l’ajout d’un ingrédient, ou encore l’étape où il faut mettre le gâteau au four, celui qui la suivra n’arrivera jamais à faire le gâteau voulu, cela ne donnera pas un bon résultat et l’algorithme de la recette sera faux.
Avant d’écrire un programme il faut donc réfléchir aux instructions que l’on va donner, c’est à dire faire l’algorithme de la tâche que l’on veut que l’ordinateur accomplisse.
Programmer se fait donc en deux étapes majeures successives :
1 – Faire un ou des algorithmes
2 – Les écrire dans un langage informatique
Si, lorsque l’on devient un programmeur un peu plus aguerri, on peut être amené à faire les deux étapes en même temps, il est important de bien les distinguer lors des débuts de l’apprentissage. Cela permettra de se familiariser avec les différents automatismes et processus logiques que l’on retrouvera de manière récurrente en programmation.
Pour réaliser la première étape de la conception d’un programme, il n’est pas utile d’utiliser un langage de programmation et elle peut être accomplie avec ce que l’on appelle du pseudo code.
Le pseudo code
Définition : le pseudo code est une façon de décrire un algorithme sans référence particulière à un langage de programmation.
Il n’existe pas de convention pour le pseudo code, mais il doit être capable de décrire les étapes de l’algorithme de manière formelle et compréhensible. Un algorithme correctement écrit en pseudo code pourra être écrit facilement en langage informatique et ce quel que soit le langage utilisé.
Les fiches de projets SCRATCH que nous proposons sur cette plateforme contiennent généralement le pseudo code du programme, ainsi que le programme lui-même.
Lien
Une ressource de cette section est consacrée spécifiquement à une explication plus détaillée de ce qu’est le pseudo code et aux conventions que nous avons établies pour les projets proposés sur Educode.
Aller à la ressource