Introduction aux algorithmes Bien que la notion soit très ancienne, le mot algorithme a récemment fait irruption dans les médias, car nous mesurons aujourd'hui plus sensiblement l'impact du numérique dans la société. Par exemple: - les moteurs de recherche posent la question sociétale de l'accès à la connaissance : quel algorithme choisit l'ordre des résultats à une requête dans un moteur de recherche ?

Qu'est-ce qu'un algorithme ? Dans ce cours de culture numérique, plutôt qu'une définition scientifique, nous allons introduire les idées principales portées par ce mot. Un célèbre livre d'introduction à l'algorithmique commence par "Before there were computers, there were algorithms". En effet, un algorithme est essentiellement une explication de comment on résout un problème et nous, humains, nous résolvons des problèmes dans toutes nos activités : pour faire la cuisine, pour organiser notre journée, pour nous rendre à une adresse, ..., et nous sommes, en général, capables d'expliquer notre façon de procéder, mais cela n'en fait pas pour autant toujours un algorithme. Un algorithme doit être très précis et ne contenir aucune ambiguïté car il doit pouvoir être exécuté, de façon automatique, sans juger ni réfléchir. Comme le dit Gérard Berry : Le but est d’évacuer la pensée du calcul, afin de le rendre exécutable par une machine numérique .

Enlever la pensée, c'est se comporter comme un automate et exécuter les instructions sans faire appel à des connaissances extérieures.

Prenons l'exemple de la préparation du café matinal dans une machine à café à filtres : - prendre un filtre dans la boîte ; - placer le filtre dans la cafetière ; - prendre le paquet de café ; - mettre autant de cuillères de café que de tasses souhaitées ; - mettre de l'eau tant que le niveau ne correspond pas au nombre de tasses souhaitées ; - démarrer la cafetière.

Les instructions ne sont pas suffisamment claires. Par exemple, l'instruction pour mettre le café suppose que vous sachiez que le café doit être placé dans le filtre déposé précédemment sinon il faudrait le préciser pour que l'instruction soit non ambiguë. Quant à la réalisation, elle dépend de vos connaissances. Un ami invité chez vous qui ne sait pas où vous rangez vos filtres et votre café ne pourra pas la réaliser.

Enlever la pensée, le jugement, c'est aussi s'exposer à des exécutions inattendues. Car un algorithme, bien que précis et non ambigu peut pour autant être faux, incomplet ou incorrect. En continuant l'exemple du café matinal, votre invité très bête (convenons-en) suit scrupuleusement les instructions que vous avez données, quelles que soient les conditions. Il n'a pas vu que le réservoir était à moitié rempli et il ajoute de l'eau sans jamais pouvoir atteindre le niveau "1 tasse" et déclenche une (mini-) inondation ! Dans le monde numérique, ce serait un logiciel qui plante, un bug suite à une condition initiale imprévue !

Nous allons approfondir la notion d'algorithme et étudier sa relation avec les ordinateurs. En effet, la citation complète est : "Before there were computers, there were algorithms. But now that there are computers, there are even more algorithms, and algorithms lie at the heart of computing" qui montre bien l'importance des algorithmes.