Introduction à la programmation¶
La programmation est le processus de dire à un ordinateur ce qu’il doit faire.
Historique¶
En 1642, Blaise Pascal inventa la machine à calculer. Mais il faudra attendre 200 ans, avant l’invention d’un langage de programmation qui permettra de spécifier des opérations et de les exécuter de façon automatique.
Métier à tisser¶
La première machine programmable est probablement le métier à tisser de Jacquard, réalisé en 1800. La machine utilisait des cartes perforées pour spécifier le motif à tisser.
Ada Lovelace¶
Ada Lovelace, la fille du poète Lord Byron, est connue pour avoir réalisé en 1843 le premier programme informatique sur un ancêtre de l’ordinateur: la machine analytique de Charles Babbage.
La machine de Turing¶
En informatique théorique, la machine de Turing est un modèle abstrait d’un appareil mécanique de calcul. Ce modèle a été imaginé par Alan Turing en 1936. Une machine de Turing comporte les éléments suivants:
un ruban infini divisé en cases. Chaque case contient un symbole (par exemple des 0 et des 1)
une tête de lecture/écriture qui permet de lire les symboles sur le ruban
un registre d’état qui mémorise l’état actuel
une table d’actions qui indique quel symbole écrire, basé sur l’état actuel et le symbole lu
Langages de programmation¶
Les instructions d’un processeur sont représentées avec des séquences binaires (des 0 et des 1). C’est difficile pour un humain de directement comprendre un tel langage.
Rapidement, des assembleurs et compilateurs ont été développés, qui permettaient de spécifier un programme avec des commandes basé sur l’anglais et plus facilement compréhensible pour un humain.
Langage machine¶
Un processeur peut exécuter un certain nombre d’instructions mathématiques et logiques. Pour la machine, ces instructions sont représentées par un code binaire bien défini; pour les humains, en général par un mot court qui idenfitie l’action à effectuer. C’est le langage machine ou langage assembleur.
Un exemple typique est une instruction qui charge une valeur (10) dans un registre (a).
load a, #10
Un autre exemple est une instruction qui additionne un nombre (2) à un registre.
add a, #2
Une instruction problématique est l’infâme goto
qui transfère le contrôle vers un autre endroit dans le code.
goto label
Son utilisation peut rendre un programme difficile à comprendre et prône à des erreurs.
Langages haut niveau¶
Les langages de plus haut niveau (C, Java, Python) remplacent l’instruction goto
par des
boucles (for, while)
appels de fonction
Langages web¶
Pour des sites web, trois langues sont indispensables:
HTML pour le contenu de la page
CSS pour le style et le format de la page
JavaScript (JS) pour programmer l’interactivité de la page
Tendances actuelles¶
Le domaine de l’informatique connait plusieurs tendances qui sont à la mode en ce moment. Ces sujets apparaissent régulièrement dans la presse et dans les médias.
Machine learning¶
L’apprentissage automatique, où machine learning (ML) en anglais, est un champ d’intelligence artificielle qui donne à l’ordinateur la capacité d’apprendre à partir des données massives.
Big data¶
Les données massives, big data en anglais, désignent les informations qui résultent d’une explosion quantitative des données durant ces dernières années. Ils nécessitent souvent multiples machines et des traitements parallélisés.
Intelligence artificielle¶
L’intelligence artificielle (IA) est l’ensemble des théories et techniques pour simuler l’intelligence humaine.
Une avancée majeure était l’ordinateur Deep Blue développé par IBM qui était le premier ordinateur à battre un champion mondial d’échecs, Garry Kasparov, en 1997.
En 2011 l’ordinateur IBM Watson a gagné au jeu télévisé Jeopardy! en répondant à des questions et en utilisant un traitement de langage naturel.
Internet des objets¶
L’internet des objets, ou Internet of Things (IoT) en anglais, désigne un nombre croissant d’objets connectés à l’internet, dans le domaine de la santé, de la domotique et de la logistique.
Cybersécurité (blockchain)¶
Le blockchain est une technologie de stockage et de transmission d’informations sans organe de contrôle. C’est une base de données distribuée, et protégée contre la falsification.
La monnaie virtuelle bitcoin utilise cette technologie.