Introduction
L’informatique est omniprésente dans nos sociétés : elle pilote les voitures, gère les réseaux de transport, analyse des données médicales, alimente les moteurs de recherche, les jeux vidéo ou encore les communications numériques. Mais derrière cette puissance technologique se cache une histoire intellectuelle et une série de principes logiques qui ont permis à l’être humain de concevoir des machines capables de traiter automatiquement de l’information.
L’informatique repose sur un concept central : l’algorithme, c’est-à-dire une séquence finie d’instructions non ambiguës et exécutables permettant de résoudre un problème donné. Toute machine informatique exécute des algorithmes, qui peuvent être traduits en langages formels. Comprendre l’informatique, c’est donc comprendre comment l’information peut être codée, manipulée, stockée et exécutée automatiquement.
Cette leçon retrace les grandes étapes de cette construction, met en lumière les fondements logiques de l’informatique moderne et montre ses implications scientifiques et sociétales.
Des machines mécaniques au traitement automatique de l’information
Les débuts : automatiser des tâches simples
Dès l’Antiquité, des dispositifs mécaniques comme l’abaque ou les astrolabes assistaient le calcul. À partir du XVIIe siècle apparaissent les premières machines à calculer :
En 1642, Blaise Pascal construit une machine capable d’additionner et de soustraire.
En 1671, Leibniz développe un dispositif plus avancé réalisant également des multiplications et divisions.
Mais ces outils restent manuels et spécialisés : ils ne peuvent exécuter qu’un nombre limité d’opérations définies à l’avance.
Le XIXe siècle : la programmation mécanique
Le véritable tournant vient de l’idée d’automatiser une séquence d’instructions. Deux figures majeures incarnent cette rupture :
Joseph-Marie Jacquard (1801) met au point un métier à tisser contrôlé par cartes perforées, permettant d’exécuter un motif sans intervention humaine.
Charles Babbage conçoit une machine analytique programmable. Il imagine une machine générale capable d’effectuer des calculs complexes, selon des instructions variables.
Ada Lovelace, qui collabore avec Babbage, comprend que la machine peut manipuler non seulement des nombres mais aussi des symboles, ce qui ouvre la voie à la programmation universelle.
À retenir
L’informatique émerge lorsque l’on comprend qu’une machine peut exécuter automatiquement une séquence d’instructions définies à l’avance : un algorithme.
La machine de Turing : un modèle abstrait du calcul
Un modèle pour penser l’algorithme
En 1936, Alan Turing propose un modèle théorique : la machine de Turing. Il ne s’agit pas d’un objet réel, mais d’un dispositif abstrait capable de simuler l’exécution de n’importe quel algorithme.
Elle fonctionne avec une bande infinie divisée en cases contenant des symboles, une tête de lecture/écriture, et une table de règles. Chaque étape dépend de l’état interne de la machine et du symbole lu.
Ce modèle définit ce que signifie « calculer » au sens formel : une tâche est calculable si elle peut être exécutée, étape par étape, par une machine de Turing. Cela fonde le domaine de la calculabilité, qui étudie ce qui peut ou non être résolu par une procédure algorithmique.
Problèmes non calculables
Turing montre également que certains problèmes sont fondamentalement insolubles. C’est le cas du problème de l’arrêt : déterminer, à partir d’un programme et d’une donnée, si ce programme terminera un jour ou tournera indéfiniment. Ce problème n’admet aucune solution algorithmique générale.
À retenir
La machine de Turing est un modèle abstrait de l’exécution d’un algorithme. Elle permet de définir les limites de ce qu’une machine (même idéale) peut ou ne peut pas faire.
Calculabilité et complexité
La calculabilité indique si un problème peut être résolu par un algorithme, indépendamment du temps ou des ressources nécessaires. C’est une notion théorique : elle distingue le possible de l’impossible.
Mais un problème calculable peut être tellement long à résoudre qu’il devient inexploitable en pratique. C’est la question de la complexité algorithmique.
Un algorithme efficace résout un problème en un temps raisonnable.
Un algorithme inefficace peut prendre des siècles, même avec un ordinateur puissant.
Par exemple, trier une liste peut se faire en quelques secondes. Mais casser un code cryptographique par force brute, bien que théoriquement possible, peut nécessiter des milliers d’années.
À retenir
Il faut distinguer la calculabilité (ce qui est possible en théorie) de la complexité (ce qui est faisable efficacement). L’un pose les limites du calcul, l’autre celles de l’exécution pratique.
Du modèle à la machine : l’ordinateur programmable
Le modèle de von Neumann
En 1945, John von Neumann propose une architecture qui transforme l’idée de Turing en machine concrète. Son innovation : le programme est stocké comme une donnée en mémoire.
Cela permet :
De modifier un programme sans changer la machine.
De copier, effacer, ou écrire des programmes capables d’en manipuler d’autres.
Exemple : un logiciel de mise à jour automatique est un programme qui télécharge et installe un autre programme. Un virus informatique peut s’autorépliquer en se copiant dans un autre fichier.
À retenir
Grâce au modèle de von Neumann, le programme devient une donnée manipulable. Cela rend les ordinateurs universels et adaptables, capables d’exécuter n’importe quelle tâche algorithmique.
Architecture d’un ordinateur
Tout ordinateur moderne repose sur quelques composants clés :
Processeur (CPU) : exécute les instructions.
Mémoire vive (RAM) : stocke temporairement les données et instructions en cours.
Mémoire de stockage : conserve les programmes et fichiers.
Entrées/sorties : assurent la communication avec l’utilisateur (clavier, écran, etc.).
Le codage binaire et la représentation de l’information
Système binaire
L’ordinateur ne comprend que deux symboles : 0 et 1. Toute information (texte, image, son, programme) doit donc être encodée en binaire.
Un caractère (ex. « A ») est représenté par un code binaire (ex. 01000001 en ASCII).
Une image est une grille de pixels, chacun représenté par une suite de bits.
Un son est numérisé par échantillonnage, chaque valeur étant un nombre binaire.
Ce codage uniforme permet à l’ordinateur de traiter toute forme d’information de manière standardisée.
À retenir
L’ordinateur traite uniquement des bits (0 ou 1). Toute donnée doit être numérisée et codée dans ce système binaire.
Langages et bogues
Langages de programmation
Pour écrire des instructions, on utilise des langages de programmation :
Les langages de haut niveau (Python, Java, etc.) sont proches du langage humain.
Le langage machine (binaire) est directement compréhensible par le processeur.
Deux outils permettent de passer de l’un à l’autre :
Le compilateur traduit l’intégralité du programme en langage machine avant l’exécution.
L’interpréteur lit et exécute le code ligne par ligne, sans le traduire entièrement à l’avance.
Erreurs et bogues
Un bogue (ou bug) est un dysfonctionnement du programme, causé par :
Une erreur de logique (ex. mauvais calcul, boucle infinie).
Un oubli de vérification (ex. division par zéro, fichier manquant).
Un comportement imprévu (ex. plantage d’une application, bug visuel dans un jeu vidéo).
Les bogues peuvent causer des pannes mineures ou des failles de sécurité majeures.
À retenir
Les langages permettent d’écrire des algorithmes lisibles par les machines. Mais un programme mal conçu peut provoquer des bogues, d’où l’importance du test et de la rigueur.
Conclusion
L’informatique s’appuie sur des principes théoriques puissants, hérités de la logique et des mathématiques : algorithme, calculabilité, codage binaire, modèle universel. La machine de Turing fournit un modèle de ce que signifie « calculer », tandis que le modèle de von Neumann rend cela réalisable sur des machines physiques, en traitant les programmes eux-mêmes comme des données.
Comprendre ces fondements, c’est saisir à la fois la puissance de l’informatique moderne et ses limites structurelles. Cela permet d’appréhender avec rigueur des technologies omniprésentes, d’interroger leur fonctionnement, leur fiabilité et leur impact, et de former un jugement éclairé dans un monde façonné par le numérique.
