Si vous avez parfois l’impression que les développeurs informatiques réfléchissent différemment, c’est parce qu’ils ont appris à avoir une logique algorithmique. Cela demande d’être cartésien et d’identifier les zones de flou. Si vous travaillez avec des développeurs ce cours vous permettra d’améliorer vos communications. Vous pourrez également réaliser des programmes informatiques, l’occasion de se découvrir de nouvelles passions ou vocations !
Un algorithme, c’est une suite d’opérations définies qui permettent de résoudre un problème. Le mot « algorithme » revient souvent dans les actualités lorsque l’on parle d’Intelligence Artificielle, ou IA. En effet, pour que les machines puissent résoudre des problèmes à notre place, il leur faut des algorithmes pour déterminer quelle décision prendre et à quel moment. Plus les algorithmes d’une machine sont précis et plus elle nous paraîtra intelligente.
Les algorithmes n’ont rien de secret. Un humain peut aussi exécuter un algorithme s’il le souhaite. C’est ce que va faire, par exemple, une personne d’un SAV lorsqu’elle va chercher à qualifier votre problème. Il ou elle va poser une suite de questions prédéfinies : « Quel est le modèle de votre appareil ? », « Vous l’avez acheté quand ? », « Vous avez essayé de changer les piles ? », etc. Les réponses que vous lui donnerez influenceront la question suivante ainsi que son diagnostic final.
Ma solution préférée est d’utiliser des feuilles et un crayon pour dessiner des arbres de décisions. Cette représentation graphique d’un algorithme est souvent utilisée lors des phases de spécification d’une idée et de documentation de l’existant. C’est un excellent outil de communication entre les humains.
Les algorithmes peuvent aussi être directement écrits à l’aide d’un langage informatique. Cela permet de pouvoir le faire exécuter par les machines et de voir leur résultat.
Nous n’apprendrons pas à coder dans ce cours. Apprendre la syntaxe et la structure d’un code informatique prendrait trop de temps. En évitant d’utiliser une représentation complexe des algorithmes, nous pourrons nous concentrer sur leur logique. Une fois les mécanismes acquis, ce sera d’autant plus facile d’apprendre à programmer si vous le souhaitez.
Nous verrons quand même des exemples de codes. Vous serez invité à les lire, apprécier leur structure générale. Il ne vous sera pas demandé de savoir les reproduire.
Voici l’exemple d’un arbre de décision qui répond à la question « Que faire de mon parapluie ? » :
Un arbre de décision est composé de quatre éléments :
Le nom vient de l’image : on dessine l’arbre à l’envers, la racine en haut et les feuilles en bas. Une feuille, c’est une fin de chemin, donc une action.
Lire un arbre, c’est suivre un seul chemin. On répond à la condition, on suit la flèche, et on recommence jusqu’à tomber sur une feuille.
On ne lit donc jamais tout l’arbre. Certaines questions ne sont même pas atteintes, parce qu’une réponse précédente donne déjà la leur.
Un·e élève exécute l’arbre au tableau avec son mois de naissance, sans le dire, et garde chaque posture. La classe doit retrouver le mois en se mettant d’accord.
Faire remarquer que le bras droit en l’air arrête le parcours. Demandez pourquoi.
Seuls octobre et décembre contiennent un C, et tous deux contiennent un R et font plus de 5 lettres.
Imaginez une personne avec les deux bras tendus sur les côtés et les deux poings fermés. Quel est son mois de naissance ? Quelle est la position de sa tête ?
Janvier, la tête penchée.
Les bras sur le côté disent qu’il n’y a ni M ni C. Les deux poings fermés disent qu’il y a un N et un R. Seul janvier réunit les quatre.
La tête se déduit ensuite du mois trouvé : janvier fait 7 lettres, donc plus de 5.