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.