Page de démo d'un projet de livre d'éducation populaire au numérique...
Ce n'est vraiment pas pour dire du mal d'eux, mais c'est un fait: les ordinateurs sont totalement idiots. Ce sont des automates qui exécutent bêtement des commandes qu'on leur donne.
Le grand secret des ordinateurs, c'est que les malheureux ne connaissent que 2 mots: le "zéro" et le "un". Ils parlent une langue rien qu'à eux, faite de 2 mots. Cette langue un peu binaire on l'appelle... le binaire.
En fait ce ne sont pas seulement les ordinateurs qui parlent le binaire, ce sont tous les bidules électroniques, et un ordinateur est fait de plein de bidules électroniques.
C'est pas beaucoup 2 mots pour s'exprimer, pour échanger.
Imagine une seconde que tu es un ordinateur. Tu es à table avec un ami ordinateur, comment lui dire "Passe moi le sel, s'il te plait!" quand on ne sait dire que "zéro" ou "un"?
Pas facile...
Pourtant on va y arriver!
Avant d'aller plus loin, je te propose d'utiliser des légos pour illustrer les "zéros" et les "uns", ce sera plus visuel et en plus ça va permettre de faire des exercices pratiques si tu le souhaites. On va dire que:
les "zéros" ce sont des briques jaunes | |
les "uns" ce sont des briques rouges |
Evidemment la couleur n'a aucune importance, il faut faire avec ce qu'on a sous la main :)
Alors, comment allons nous demander le sel avec nos briques?
Il suffit en fait qu'on s'arrange avec ton ami, qu'on mette au point un petit jeu: on va se mettre d'accord sur un code.
On va dire que "zéro" () ça veut dire "sel" et "un" () ça veut dire "poivre".Maintenant c'est tout simple, si on est bien d'accord tous les 2 sur les règles du jeu, ça devient enfantin. Si tu veux du sel, il suffit de lui envoyer une brique jaune. Comme il a les règles, il sait que je veux dire "sel". Et voilà, nous communiquons entre ordinateurs, on parle binaire.
Tu as tout compris aux ordinateurs, tu sais comment ils se parlent et échangent des données, en établissant une règle de jeu, un code, je n'ai plus rien à t'apprendre :)
Pardon? Et si on veut le ketchup?...
Euh... effectivement, c'est ennuyeux.
Tu as raison, avec les règles de notre jeu, on ne peut pas demander le ketchup. En plus ça s'annonce mal puisqu'on a déjà utilisé tous les mots possibles: le "zéro" et le "un". Comment faire?...
L'idée est toute simple: au lieu d'utiliser une seule brique, on va en utiliser 2.
On va réécrire nos règles.
A partir de maintenant, je vais ajouter aux règles que pour désigner un objet, je ne vais plus utiliser une brique, mais une pile de 2 briques.
J'écris mes nouvelles règles du jeu:
Et voilà, en groupant les briques par 2, je peux composer 3 groupes bien distincts qui me permettent de désigner 3 choses différentes. En fait on pourrait même ajouter la mayonnaise: il nous reste encore une possibilité qu'on n'a pas utilisée, 2 briques rouges.
Important: l'ordre des brique est essentiel. Empiler une brique jaune sur une brique rouge n'est pas pareil qu'empiler une brique rouge sur une brique jaune.
Internet c'est avant tout des ordinateurs qui se parlent. On l'a vu ils ne comprennent que "zéro" ou "un". Comble de malheur ils n'ont pas la chance d'avoir une bouche et des oreilles, il a donc fallu trouver un autre moyen pour qu'ils puissent s'échanger des zéros et des uns: on les a reliés par des tuyaux. Ces tuyaux n'ont qu'un rôle: pouvoir transmettre des zéros et des uns.
Que ce soit un ordinateur ou tout autre bidule numérique (téléphone, télé, console de jeu, barrière de péage, lave vaisselle...), on va voir qu'on peut considérer tous ces objets électroniques comme de simples boites connectées par des tuyaux.
Une des premières choses qu'on peut devoir échanger entre 2 bidules numériques ce sont des mots, des vrais, ceux que nous utilisons. Par exemple lorsque tu envoies un SMS à un ami, ton message va être transformé en 0 et en 1 pour passer dans des tuyaux jusqu'à ton ami.
Comment envoyer un mot avec des zéros et des uns?
On va faire comme pour le sel et le poivre. On va établir une régle du jeu pour les textes avec un code pour chaque lettre.
En classe de CE1 nous avons fait l'essai avec un mot de 4 lettres: MIEL
On a vite constaté qu'une brique ne suffisait pas et qu'il nous fallait des groupes de 2 briques pour pouvoir désigner 4 lettres différentes.
On a donc écrit notre nouvelle règle avec 2 briques par lettres:
Avec ces règles nous allons construire le message à envoyer à l'ordinateur qui est à l'autre bout du tuyau. On empile simplement toutes les lettres pour former notre message.
Le message est pret, il n'y a plus qu'à l'envoyer!
A l'autre bout l'ordinateur connait la règle du jeu et n'a plus qu'à déchiffrer notre message. Comme il sait qu'on les a empilées dans l'ordre, il va dépiler les briques par groupes de 2 en commençant par le bas:
Maintenant que nous avons donné un code à chacune de ces 4 lettres, on peut écrire n'importe quel mot avec: MILLE, LIME, MILLIEME,... peu importe la taille tant qu'on n'utilise que ces 4 lettres et qu'on sait que chaque lettre utilise 2 briques.
Exemple pratique, je viens de recevoir ce message:
Sauras tu le décoder?
Allez, je t'aide un peu: il y a 10 briques, donc on en déduit qu'il y a:
10/2 = 5 lettres à trouver
Attention de ne pas se tromper dans l'ordre et de bien commencer par le bas! Je te les découpe et je te remets la règle à côté pour que tu trouves tout seul ;)
Voilà, je suis sûr que tu as trouvé ce joli prénom :)
Tous les ordinateurs du monde n'en savent pas plus que toi après la lecture de ce chapitre. Ce sont des règles toutes simples, mais ce qui fait la différence avec nous, c'est que ces petits jeux de codage et de décodage de message, ils savent le faire à une vitesse inimaginable, c'est ce qui fait qu'ils vont bien plus loin et qu'ils en deviennent pas si bêtes que ça.
Avec une brique par lettre, on peut désigner 2 lettres.
Avec deux briques par lettres, on peut désigner 4 lettres.
A chaque fois qu'on ajoute une brique, on multiplie par 2 le nombre de possibilités. C'est logique, si j'ai le droit à une brique de plus on a comme combinaisons possibles:
Ca fait au final 2 x toutes les possibilités d'avant.
Exemple: avec 2 briques on a 4 possibilités
Si on autorise une 3eme brique voilà ce que ça donne:
Tu commences à trouver ça compliqué? Moi aussi! Et c'est là que l'ordinateur nous dépasse. Nous on doit réfléchir pour reconnaitre la bonne pile, retrouver dans la règle la lettre qui correspond. Imagine si il y avait 4 briques, ou 5, ou 8...
L'ordinateur lui il ne sait faire que ça, mais il le fait à la vitesse de la lumière. Il est capable d'ajouter plein de briques et tout coder/décoder en une fraction de milliseconde. Et on est bien content qu'il s'en occupe, parce que justement, on va avoir besoin de plus de briques.
Encoder c'est donner un code unique à chaque chose qu'on veut désigner.
Pour que les ordinateurs de toute la planète se comprennent, on a écrit une règle du jeu pour les caractères. Cette règle s'appelle l'ASCII. Ca consiste à donner un code pour chaque lettre.
Notre alphabet comporte 26 lettres. Si on distingue les majuscules des minuscules, ça fait déjà 26 + 26 = 52 lettres.
On a voulu aussi donner des codes pour les chiffres (le "0", le "1", le "2", ...), les ponctuations (le point, la virgule...), d'autres signes utiles (le "+", le "-", les parenthèses...), bref, il nous fallait pas mal de combinaisons possibles: je t'épargne les détails, on a choisit d'utiliser 8 briques par caractère.
Pour info, avec 8 briques, on a 256 possibilités. C'est largement assez pour nos majuscules, nos minuscules et les autres caractères dont on a besoin pour écrire un texte comme celui que tu es en train de lire.
Fort heureusement ça n'a absolument aucun intérêt de connaître tous ces codes mais pour visualiser un peu les choses, les ordinateurs eux savent ces codes par coeur, et ça ressemble à ça pour les lettres:
Pour les chiffres:
Il y a pas mal d'autres caractères dans cette règle du jeu, même l'espace a un code, c'est comme un caractère vide qui permet de séparer les mots. Par exemple si tu envoies "coucou ;)", il va falloir envoyer un pile avec les caractères suivants: "c"+"o"+"u"+"c"+"o"+"u"+" "+";"+")", ce qui fait 9 x 8 briques = 81 briques.
Ca peut sembler beaucoup mais ne t'inquiète pas, les piles de un et de zéro qu'on envoie dans les tuyaux sont gigantesques, et ça ne pause pas de problèmes, on a des ordinateurs pour s'occuper de ça ;)
Les images numériques sont de simples grilles composées de minuscules cases, chacune ayant sa couleur. Ces cases sont appelées Pixels.
En gros pour définir une image il faut donner la taille de la grille et la couleur de chaque case, de chaque pixel.
Il peut y avoir une infinité de couleurs, on va commencer simplement avec 2 couleurs.
Considérons cette petite image:
Les pixels qui composent cette image sont soit blanc, soit noir. On les voit nettement en agrandissant l'image:
Le but du jeu est toujours le même: comment décrire cette image avec nos zéros et nos uns. Ici encore il va s'agir de trouver les bonnes règles qui décriront complètement l'image.
Il n'y a pas qu'une seule façon de faire, mais il faut en choisir une et s'assurer que celui qui envoie et celui qui reçoit ont bien la même règle.
Je propose cette règle: pour commencer on va dire qu'un 0 désigne une case blanche et un 1 une case noir. Il va nous falloir envoyer tous les pixels et surtout dire comment on va les ranger.
Pour cela on va définir un chemin qui parcourt toutes les cases. Ca donnera l'ordre dans lequel on range les pixels.
Ma règle au final est:
Pour construire notre message à transmettre, on va empiler nos briques en parcourant l'image comme on l'a expliqué: à chaque fois qu'on croise un pixel blanc, on empile un 0, et à chaque fois qu'on croise un pixel noir, on empile un 1.
On n'a qu'à poser nos briques sur chaque pixel et les ramasser dans cet ordre pour les empiler.
On ramasse la première ligne en commançant par la gauche:
Puis la 2ème:
Puis la 3ème:
Et enfin la 4ème:
On empile tout ça et hop, dans le tuyau!
A l'autre bout l'autre ordinateur va prendre cette pile de briques et les dépiler comme convenu dans la règle: en commençant par le bas. Il sait qu'il doit créer une grille de 4 lignes et 5 colonnes.
Départ: il se place sur la première case en haut à gauche de sa grille vide et dépile la première brique: c'est rouge, donc 1, donc il colorie la case en noir et il passe à la case suivante.
Deuxième brique: jaune, c'est un zéro, donc il colorie en blanc et il passe à la case suivante
Et ainsi de suite jusqu'à la dernière brique qui correspond à la dernière case en bas à droite.
Evidemment, bien penser de redémarrer à la ligne du dessous quand on arrive au bout d'une ligne ;)
Au final l'ordinateur récepteur à décodé notre image et est capable de l'afficher à son tour.
Imaginons qu'on souhaite passer du noir et blanc à la couleur. Tout comme pour les lettres dans le chapitre précédent, si on veut désigner plus de 2 couleurs, il va falloir utiliser plusieurs briques par couleur.
On a vu qu'avec une brique, on peut désigner 2 piles différentes. Avec 2 briques, 4 piles différentes. 3 briques, 8 piles.
To be continued....