En savoir plus

Des algorithmes à la programmation

D'une recette vieille de 2000 ans jusqu'au langage que tu utilises aujourd'hui : comment l'algorithme, longtemps exécuté par des humains, est devenu un programme confié à une machine - et la programmation, un métier. Petit voyage dans le temps.

Le fil du temps#

À gauche, l'algorithme (la recette). Vers la droite, la programmation (la recette confiée à une machine). Ada Lovelace, en inventant le premier programme, est la charnière entre les deux mondes.

~300 av. J.-C.
Euclide
Le PGCD, plus vieil algorithme encore utilisé
~820
Al-Khwarizmi
Donne son nom au mot « algorithme »
1804
Jacquard
Une machine pilotée par des cartes perforées
~1837
Babbage
La machine analytique : l'ordinateur conçu
1843
Ada Lovelace
Invente le premier programme de l'histoire
1936
Alan Turing
Définit formellement ce qu'est un algorithme
1952
Grace Hopper
Le premier compilateur, puis les langages
1991
Python
Le langage que tu utilises en classe

D'où vient le mot « algorithme » ?#

📜

Vers l'an 820, à Bagdad, le savant Muhammad ibn Musa al-Khwarizmi travaille à la Maison de la Sagesse. Il écrit des manuels de calcul si clairs qu'on les recopie pendant des siècles. Quand ses livres arrivent en Europe, son nom est latinisé en « Algoritmi » - et finit par désigner toute méthode de calcul pas à pas.

Bonus : le titre d'un de ses ouvrages, al-jabr, nous a aussi donné le mot « algèbre ». Un seul savant, deux mots que tu utilises encore en classe.

Le plus vieux : l'algorithme d'Euclide#

Plus de 2000 ans avant le premier ordinateur, le mathématicien grec Euclide décrit une recette pour trouver le plus grand commun diviseur (PGCD) de deux nombres. Elle est si efficace qu'on l'utilise encore aujourd'hui, telle quelle, dans les calculatrices et la cryptographie.

L'idée : le PGCD de deux nombres est aussi le PGCD du plus petit et du reste de leur division. On répète jusqu'à ce que le reste tombe à zéro - le dernier nombre non nul est la réponse.

def pgcd(grand, petit): while petit != 0: grand, petit = petit, grand % petit return grand

Déroule l'algorithme d'Euclide toi-même

Chaque ligne remplace le couple par (le plus petit, le reste). En quelques étapes seulement, même pour de très grands nombres : c'est un algorithme remarquablement rapide.

Le grand tournant : confier la recette à une machine#

Jusqu'ici, l'algorithme vit dans la tête d'un humain, qui l'exécute lui-même. Le basculement vers la programmation, c'est le jour où l'on confie ces instructions à une machine. Et, surprise, tout commence dans un atelier de tissage.

🧵

En 1804, le Lyonnais Joseph-Marie Jacquard invente un métier à tisser piloté par des cartes perforées. Chaque carte indique à la machine quels fils lever ; changer les cartes change le motif tissé, sans rien modifier à la machine. Pour la première fois, une suite d'instructions est séparée de la machine qui l'exécute.

C'est l'idée fondatrice du logiciel : la machine reste fixe, le programme (les cartes) devient interchangeable. Ada Lovelace s'en souviendra, en écrivant que la machine analytique « tisse des motifs algébriques comme le métier Jacquard tisse des fleurs ».

Babbage : l'ordinateur dessiné sur papier#

🧮

Dans les années 1830, le mathématicien anglais Charles Babbage reprend les cartes de Jacquard et conçoit la machine analytique : un véritable ordinateur mécanique, avec une unité de calcul (« le moulin »), une mémoire (« le magasin »), une entrée par cartes, et même des boucles et des décisions conditionnelles.

Faute de moyens, la machine ne sera jamais construite de son vivant. Mais le plan, lui, est complet : c'est le premier ordinateur de l'histoire... resté sur papier. Il manquait quelqu'un pour comprendre ce qu'on pouvait vraiment lui faire faire.

Ada Lovelace invente le premier programme de l'histoire#

🫁

Ada Lovelace (1815-1852), mathématicienne anglaise, collabore avec Babbage autour de sa machine analytique. En 1843, dans ses notes, elle écrit une suite d'instructions pour lui faire calculer les nombres de Bernoulli : elle invente ainsi le tout premier programme informatique de l'histoire, écrit pour une machine qui n'existait pas encore. La machine était prête sur papier ; il fallait l'esprit d'Ada pour inventer ce qu'on allait lui faire exécuter.

Surtout, Ada comprend une chose que Babbage lui-même n'avait pas vue : une telle machine ne sert pas qu'à calculer des nombres. Si l'on sait traduire d'autres choses - des notes de musique, par exemple - en symboles, alors la machine peut les manipuler aussi.

« Supposons que les rapports fondamentaux des sons dans la science de l'harmonie soient traduisibles en notation : la machine pourrait alors composer des morceaux de musique élaborés et scientifiques, de n'importe quel degré de complexité ou d'étendue. » - Ada Lovelace, Notes sur la machine analytique, 1843

Près d'un siècle avant le premier ordinateur, elle avait déjà entrevu l'informatique créative : musique, images, art générés par une machine. Exactement le monde dans lequel tu codes aujourd'hui. 🎵  Sa page dédiée : portraits, citations et premier algorithme →

Turing : ce qu'est un algorithme, au fond#

⚙️

En 1936, le mathématicien Alan Turing imagine une machine abstraite très simple - un ruban, des symboles, des règles - et démontre qu'elle peut exécuter n'importe quel algorithme imaginable. Cette « machine de Turing » donne enfin une définition précise du mot algorithme et fonde l'informatique théorique.

Au passage, Turing prouve aussi qu'il existe des problèmes qu'aucun algorithme ne pourra jamais résoudre. Trier, chercher, calculer un PGCD : faciles. Mais certaines questions n'ont pas de recette - une frontière fascinante que tu croiseras plus tard.

Grace Hopper : programmer avec des mots#

💻

Au début des années 1950, programmer veut encore dire écrire des suites de nombres que seule la machine comprend. L'Américaine Grace Hopper, officière de marine et mathématicienne, a une idée renversante : et si on programmait avec des mots ? En 1952, elle écrit le premier compilateur - un programme qui traduit des instructions lisibles par un humain en langage machine.

C'est la naissance des langages de programmation. Son travail ouvre la voie au COBOL, puis à toute la lignée qui aboutit aux langages clairs d'aujourd'hui - Python compris. On lui doit aussi le mot « bug » : en 1947, son équipe trouve un vrai papillon de nuit coincé dans une machine et le colle dans le carnet de bord. 🐛

Le fil rouge : de la recette au programme#

En une phrase, voici le voyage que tu viens de faire :

Euclide écrit la recette → Al-Khwarizmi lui donne son nom → Jacquard la met sur des cartes → Babbage bâtit la machine → Ada invente le premier programme → Turing en donne la théorie → Hopper la rend lisible avec des mots → toi, en Python.

Quand tu écris une simple boucle, tu es l'héritière directe de cette chaîne. La recette d'Euclide tenait sur un parchemin ; aujourd'hui, tu la confies à une machine en quelques lignes :

# La même idée qu'Euclide, mais exécutée par une machine : c'est ça, programmer. def pgcd(grand, petit): while petit != 0: grand, petit = petit, grand % petit return grand

Deux mille ans séparent la recette de son exécution automatique. Tu es, très concrètement, la suite de cette histoire. ✨