vendredi 17 avril 2015

Petites devinettes sur l'anatomie d'un appareil programmable


Article à mettre sous forme de questionnaire, des photos seront ajoutées pour illustrer chaque organe.

Prend un appareil programmable dans ta main, celui par exemple sur lequel tu es en train de lire cet article. Observe-le bien et dis-moi :


  • Est-ce que ton appareil a un cerveau ?   
    • Oui, et même peut-être plusieurs. Le cerveau est caché dans le processeur. C'est ce qui va lui permettre de faire ce que tu lui demandes. S'il a un seul cerveau (comme toi), il ne pourra faire qu'un seul calcul à la fois (comme toi). Mais s'il en a plusieurs, il peut faire autant de calculs en même temps qu'il a de cerveaux! 
  • Est-ce que ton appareil a une mémoire?
    • Oui et comme toi il a une mémoire rapide et une mémoire durable.
    • La mémoire rapide c'est celle que tu utilises pour retenir des informations sur une courte durée. Tu l'utilises par exemple pour retenir une information comme "ce soir c'est la babysitter qui vient me chercher à l'école". Une fois qu'elle est venue te chercher, cette information ne t'intéresse plus donc tu l'oublies. La mémoire rapide de ton appareil s'appelle la RAM. Elle lui permet d'enregistrer des informations pour faire plus rapidement ses calculs. Pour la petite information, cette mémoire est effacée à chaque fois que tu éteins ton appareil. C'est pour cette raison qu'on te conseille d'éteindre ton appareil et de le rallumer quand il ne fait plus ce que tu lui demandes. Il s'est emmêlé les pinceaux dans ses calculs et a besoin de recommencer à zéro.
    • Tu as aussi une mémoire plus durable, c'est celle qui te permet d'apprendre. Par exemple apprendre à lire, ou faire du vélo. Une fois que tu as appris, c'est gravé dans ta mémoire et tu n'oublieras plus. C'est pareil pour ton appareil, il a une mémoire durable qu'on appelle le disque dur. Et comme pour toi, c'est plus long d'enregistrer une information dans la mémoire durable que dans la mémoire rapide!

  • Est-ce que ton appareil a un cœur? 
    • Oui, la carte mère est le cœur de ton appareil. Ton cœur à toi fait circuler le sang dans ton corps. Le cœur de ton appareil fait circuler les informations dans ses circuits. Ton cœur est capable de battre plus vite en fonction des besoins de ton corps. Celui de ton appareil bat toujours à la même vitesse, c'est ce qu'on appelle la fréquence. Il donne ainsi le rythme de travail du cerveau.

  • Est-ce que ton appareil a des vaisseaux sanguins? 
    • Oui, ton sang circule dans des vaisseaux sanguins. Les informations de ton appareil circulent dans des bus, ce sont tout simplement des fils électriques qui transportent l'information d'un organe à un autre. Ces bus sont sur la carte mère, ce sont les traits que tu vois gravés sur le plastique vert.


      • Est-ce que ton appareil a des poumons? 
        • Oui, il s'agit du ventilateur de l'ordinateur ou de la surface du téléphone ou de la tablette. Toi tu as besoin d'évacuer les mauvais gaz de ton corps (scientifiquement appelé CO2 ou gaz carbonique). Ton appareil lui a besoin d'évacuer la chaleur produite par son cœur et son cerveau, il se sert donc du ventilateur ou de l'air autour de lui pour se rafraîchir. C'est pour cette raison qu'il ne faut pas utiliser ton appareil s'il fait trop chaud, ses circuits électriques risquent de fondre. On dit alors que l'appareil a "grillé"!

      • Est-ce qu'il peut voir? 
        • Oui, la caméra ou encore le scanner font office d’œil pour ton appareil. Il lui permettent de capter une image. Par contre, ton appareil ne sait pas encore bien analyser les images. Il ne peut souvent rien faire de ce qu'il voit. Mais la recherche avançant très vite, dans quelques années, il saura de mieux en mieux utiliser ses yeux!

      • Est-ce qu'il a un odorat?
        • Non, pour l'instant les appareils classiques n'ont pas encore d'odorat. Mais qui sait ce que l'avenir nous réserve?

      • Est-ce qu'il peut parler?
        • Non, il ne parle pas mais ton appareil peut émettre du son à l'aide de ses enceintes. Pour parler, il faudrait qu'il puisse décider par lui-même de ce qu'il veut dire. Or un appareil ne fait que répondre aux ordres que tu lui donnes. Par contre, pour communiquer avec toi, il va utiliser quelque chose de beaucoup plus visuel : l'écran. C'est grâce à l'écran qu'on peut voir ce que l'appareil a fait de nos ordres. 

      • Est-ce qu'il entend?
        • Oui, son micro lui permet de capter les sons. Mais comme pour les yeux, il ne sait pas encore bien comprendre ce qu'on lui raconte. Là encore, la recherche avance très vite, et on peut déjà commencer à donner des ordres à notre smartphone. Par contre, inutile de traiter ton appareil de tous les noms d'oiseaux! Il ne les comprend pas. ;-)

      • Est-ce qu'il sent quand on le touche?
        • Oui il sent ton doigt grâce à l'écran tactile pour les smartphones, les tablettes ou le clavier et la souris pour les ordinateurs, la manette de jeux pour ta console de jeux. Dès que tu poses ton doigt quelque part, il reconnaît la présence de ton doigt et réagit en fonction de ce qu'on lui demande de faire. Sinon, ce sera avec la souris ou la manette de jeux qu'il saura où tu le "touches". 

      • Est-ce qu'il a des bras et des jambes?
        • Non, mais les robots en ont. Et les robots ne sont que des ordinateurs dans une coque différente. Il y a aussi beaucoup de machines industrielles équipés de bras robotisés pour attraper des choses ou de roues pour se déplacer. Mais notre ordinateur, nos tablettes et nos smartphones n'ont rien de tout ça. Enfin, pour l'instant... Qui sait, un jour notre tablette volera à nous dès qu'on l’appellera! 


      Avec ces explications, on voit que l'appareil que tu as entre les mains a beaucoup de ressemblances avec ton corps. Les médecins n'ont plus aucune excuse pour ne rien comprendre à l'informatique! ;-) Plus sérieusement, les informaticiens s'inspirent beaucoup du vivant pour ajouter de nouvelles fonctions à nos appareils. Il y a même une science qui a pour but de s'inspirer du vivant : le biomimétisme.

      Mais qu'est-ce que tu as que ton appareil n'a pas? L'intelligence! Eh oui, malgré toutes ses formidables capacités, ton appareil est extrêmement bête, il ne peut faire que ce que tu lui dis de faire. Il ne peut donc pas prendre de décision par lui-même.
      Mais les informaticiens s'intéressent de plus en plus à l'intelligence artificielle, ce qui permettra peut-être à notre appareil de devenir un humanoïde. Et là encore, la recherche avance très vite! 

      Est-ce que tu as réussi à trouver toutes les parties du corps de ton appareil?

      mercredi 15 avril 2015

      Jouons aux espions... (ou comment coder un texte pour que l'ordinateur le comprenne)

      Si l'ordinateur ne comprend que les 0 et les 1, comment je fais pour écrire des lettres?
      Il va falloir transformer toutes les lettres de l'alphabet en 0 et 1... C'est ce qu'on appelle coder une information. C'est exactement ce que ferait un espion pour envoyer un message secret à son QG!

      Alors jouons les espions, et essayons de coder l'alphabet!

      On sait déjà coder les chiffres, il suffit de reprendre leur équivalent en binaire, ça donne donc : 
      0  -->  0
      1  --> 1
      2 --> 10
      3 --> 11
      4 -->  100
      5  -->  101
      6  -->  110
      7 -->  111
      8 -->  1000
      9 --> 1001

      On va donc tester ce code, essayons d'écrire 13 avec notre nouveau code :
      On remplace le 1 par son code donc 1, et 3 par son code 11, ça donne :  111
                                                         13
                                                         /  \
                                                        1  11

      Le problème c'est que 111 est le code de 7! Alors comment l'ordinateur va-t-il faire la différence entre 7 et 13 si c'est le même code...

      Il va donc falloir modifier un tout petit peu notre code, pour cela notre espion a eu l'idée de coder chaque chiffres sur 4 chiffres. Il a rajouté des 0 avant notre code pour que chaque code soit fait de 4 chiffres. Ça nous donne donc : 

      0  -->  0000
      1  -->  0001
      2 -->   0010
      3 -->   0011
      4 -->   0100
      5  -->  0101
      6  -->  0110
      7 -->   0111
      8 -->   1000
      9 -->   1001

      Réessayons d'écrire 13 :

                                                         13
                                                         /  \
                                                  0001   0011   

      Pour écrire 13 avec notre nouveau code, il faut écrire : 00010011. Ce qui cette fois-ci est bien différent de 7 qui s'écrit 0111.

      Ok essayons d'autres nombres : 

      32  ça donne 0011  et  0010  donc 00110010

                                                         32
                                                         /  \
                                                  0011   0010

      64  ça donne 0110  et  0100  donc 01100100

                                                         64
                                                         /  \
                                                  0110   0100
      100 ça donne 0001 puis 0000 puis 0000 donc 000100000000

                                                         100
                                                         /  |   \
                                                       /    |     \
                                               0001  0000  0000


      Et ainsi de suite. Avec notre nouveau code, on peut écrire tous les nombres qu'on veut en utilisant uniquement les chiffres 0 à 9 en binaire. On peut maintenant utiliser tous les autres nombres en binaires pour coder les lettres de l'alphabet.

      Rajoutons les lettres de l'alphabet dans notre code, pour cela, on va continuer notre liste :


      0  -->  0000
      1  -->  0001
      2 -->   0010
      3 -->   0011
      4 -->   0100
      5  -->  0101
      6  -->  0110
      7 -->   0111
      8 -->   1000
      9 -->   1001
      A  -->  1010
      B  -->  1011
      C -->   1100
      D -->   1101
      E -->   1110
      F  -->  1111
      G  -->  10000
      H  -->  10001
      I -->   10010
      J -->   10011
      K -->   10100
      L  -->  10101
      M  -->  10110
      N -->   10111
      O -->   11000
      P -->   11001
      Q  -->  11010
      R  -->  11011
      S -->   11100
      T -->   11101
      U -->   11110
      V -->  11111
      W  -->  100000
      X  -->  100001
      Y  -->  100010
      Z  -->  100011

      Testons notre code, on va écrire le code de la porte d'entrée : 4A30
      Ca donne : 1000 puis 1010 puis 0011 puis 0000   donc : 1000101000110000

      Sauf que l'ordinateur lui comprend : YZ0 ... Oups, on a oublié de mettre des 0 en plus pour que tous les codes soient de la même longueur. Reprenons, notre code :

      0  -->  000000
      1  -->  000001
      2 -->   000010
      3 -->   000011
      4 -->   000100
      5  -->  000101
      6  -->  000110
      7 -->   000111
      8 -->   001000
      9 -->   001001
      A  -->  001010
      B  -->  001011
      C -->   001100
      D -->   001101
      E -->   001110
      F  -->  001111
      G  -->  010000
      H  -->  010001
      I -->   010010
      J -->   010011
      K -->   010100
      L  -->  010101
      M  -->  010110
      N -->   010111
      O -->   011000
      P -->   011001
      Q  -->  011010
      R  -->  011011
      S -->   011100
      T -->   011101
      U -->   011110
      V -->  011111
      W  -->  100000
      X  -->  100001
      Y  -->  100010
      Z  -->  100011

      Nous avons maintenant des codes à 6 chiffres.

      Écrivons un prénom, par exemple Arthur. On remplace donc chaque lettre par son code :

      A             R             T            H            U               R
      001010    011011   011101   010001   011110     011011

      et ça donne :  001010011011011101010001011110011011

      Pas très lisible pour un humain, mais l'ordinateur a tout compris!

      Et petite devinette, qu'est-ce que j'ai écrit ?

      001011  011011  001010  011111  011000

      Sur nos 6 caractères, nous avons réussi à caser tous les chiffres et toutes les majuscules de l'alphabet. Mais sur le clavier, il y a bien d'autres caractères : les minuscules, la ponctuation, les touches d'action (entrée, retour arrière, inser, maj, ctrl...) Il faut donc les caser dans notre code. On pourrait continuer l'exercice mais je pense que vous avez compris.

      Par contre, dans notre code à 6 caractères, ou si on prend le terme informatique à 6 bits, il ne nous reste plus que 28 codes libres... Il va donc falloir rajouter des bits devant notre code pour caser encore plus de caractères.

      Un des premiers codes inventé par les espions informaticiens contient 8 bits. C'est le code ASCII. Il traduit toutes les lettres latines et les principales touches de notre clavier en 8 bits. Ce code a été largement utilisé à l'échelle internationale par les informaticiens. C'est d'ailleurs de là que vient le mot octet. Un octet est un groupe de 8 bits donc 1 code ASCII. C'est pour cette raison que la taille d'un fichier est calculé en octets ou plutôt en Ko (Kilo octet) voire Mo (Méga octet). Parfois, vous pourrez voir l'information : Méga byte ou Kilo byte. Il s'agit tout simplement de la traduction anglaise d'octet. En anglais, un octet est un byte à ne pas confondre avec le bit (qui correspond au 0 ou 1).


      A retenir : A chaque fois que tu appuies sur une touche du clavier, la lettre que tu veux afficher est transformée en 0 et 1. On dit qu'elle est codée.

      Ok mais maintenant qu'on a codé nos lettres, comment on envoie le message codé à l'ordinateur? Bah oui, c'est bien beau de coder un message mais si l'espion ne l'envoie pas au QG, ça ne sert à rien! La suite au prochain épisode...

      mardi 7 avril 2015

      Mon fils a 110 ans ... en binaire!

      Ce matin, j'ai annoncé à mon fils qu'il avait 110 ans en binaire. Il m'a regardé l'air de dire "Maman me raconte encore n'importe quoi! Elle me fait marcher c'est sûr..." Mais curieux comme il est, il se risque quand même : "C'est quoi binaire?"

      Le binaire c'est l'art de calculer avec des 0 et des 1!

      Quand toi tu comptes, tu utilises tous les chiffres de 0 jusqu'à 9.
      Quand tu arrives à 9, tu ajoutes les dizaines (10, 20, 30 ...).
      Quand tu arrives à 99, tu rajoutes les centaines (100, 200, 300...).
      Et ainsi de suite jusqu'à ce que tu arrives au nombre que tu veux.
      Tu utilises le système décimal.

      En binaire, c'est pareil, tu utilises les chiffres 0 et 1.
      Quand tu arrives à 1 (ça vient vite), tu ajoutes la dizaine : 10,
      Quant tu arrives à 11, on ajoute la centaine : 100
      Et ainsi de suite jusqu'à ce que tu arrives au nombre que tu veux.


      En pratique, ça donne :

      0     ->           0
      1     ->           1
      2     ->         10
      3     ->         11
      4     ->       100
      5     ->       101
      6     ->       110
      7     ->       111
      8     ->     1000
      9     ->     1001
      10     ->     1010 
      11     ->    1011
      12     ->    1100
      13     ->    1101
      14     ->     1110
      15     ->    1111
      16    ->   10 000
      20   ->     10 100
      30   ->     11 110
      32  ->   100 000
      40 ->    101 000
      50  ->   110 010
      60  ->   111 100
      64 ->  1 000 000

      Si tu as plus de 1100 ans, tu as probablement appris la notion de puissance. Tu remarqueras donc qu'en gras, on n'a que des puissance de 2
      2^0 = 0
      2^1 = 10
      2² = 4 = 100
      2^3 = 8 = 1 000
      2^4 = 16 = 10 000
      2^5 = 32 = 100 000
      ...


      Et comment on fait pour calculer avec que des 0 et des 1?
      On fait comme d'habitude, mais au lieu de faire une retenue à 9, on la fait à 1.
      Donc 1 + 1 = 10.

          1
           1
      +   1
         10

      Et pour les multiplications, ça ne change rien :

      0*1 = 0           et             1*1 = 1

      Pour les divisions, c'est pareil :
                    
      0/1 = 0           et            1/1 = 1   
               
      et surtout 1/0 = un bug!!! Malheureux, on ne divise jamais par 0! C'est cette opération qui est à l'origine de toutes les erreurs informatiques. Mais on verra ça plus tard.

      Revenons à nos additions. Une fois qu'on a compris ces principes, on peut faire tous les calculs qu'on veut.

      2 + 3 = 5 en binaire ça donne 10 + 11 = 101

          1
          10
      +  11
        101


      19 + 5 = 24  en binaire ça donne :  10 011 + 101 = 11 000

            1  1 1
        10 011
      +     101
         11 000

      Moi j'ai 100 001 ans. Et vous quel âge avez-vous en binaire?


      Ok, mais pourquoi calculer avec des 0 et des 1? Les informaticiens n'aimeraient-ils pas un peu se prendre la tête pour pas grand chose?

      Pour en avoir fréquenté un certain nombre, j'avoue que cette dernière réflexion a un fond de vérité...
      Mais dans le cas qui nous intéresse, ce n'est pas de leur fait mais à cause de cet appareil que vous utilisez actuellement pour me lire. Cet appareil est intellectuellement très limitée (oui oui, même s'il s'agit de la dernière version ultra méga top de chez notre ami la pomme). Votre appareil, aussi sophistiqué soit-il, ne connaîtra jamais rien de plus que les chiffres 0 et 1!! C'est ce qu'on appelle un bit. Par contre, plus il est récent et plus il calcule vite. Et même très très très vite. Ça compense son ignorance...

      D'ailleurs, vous l'avez sans doute remarqué, il est inutile d'essayer de lui parler, il ne comprend pas un traître mot de ce que vous dites! Et quelque soit votre QI, il est impossible de retenir des séries de 0 et 1 pour causer avec cette chose. C'est pour ça que notre ami informaticien a trouvé une solution beaucoup plus simple pour que tout ce petit monde se comprenne. Mais ça c'est une autre histoire...