Blog Blog

Cryptologie : gardez le secret !

Mais c’est quoi la cryptologie ? C’est la somme de la cryptographie et de la cryptanalyse. Ah… frownaffiche cryptologie Cernay

Alors disons que vous cherchez un moyen de communiquer secrètement un message à un ami (par SMS par ex) sans que ce message puisse être compris par d'autres personnes (parents, profs,...). Comment faire ? Vous inventez un code...
Une fois que vous avez créé un code, il faut se demander :

  • est-il facile à apprendre et à utiliser?
  • est-il difficile à "casser" pour une personne extérieure qui ne connaîtrait pas ce code?

 

La cryptographie, c’est cette idée de brouiller un message pour que son contenu ne soit compréhensible que par son destinataire.
Et ça ne date pas d’aujourd’hui…
D’ailleurs, une méthode connu est le chiffrement de … César !
Vous pouvez utiliser sa méthode en imprimant et découpant 2 disques (voir le fichier fourni par La main à la pâte) et en les fixant ensemble par leur centre : en décalant un alphabet disons de 3 crans par rapport à l’autre A devient D, B devient E, etc et on décode un message en décalant du même nombre dans l’autre sens, et donc YHQL YLGL YLFL est un message codé pour… « VENI VIDI VICI » la célèbre maxime de Jules César (Je suis venu, j’ai vu, j’ai vaincu).

Caesar3


Amusez-vous à chiffrer / déchiffrer avec le code de César sur cette page : http://www.apprendre-en-ligne.net/crypto/cesar/index.html 

Alors, évidemment, quand on connait le code, c’est facile !
Mais si on ne le connaît pas ? Il faut le trouver ! Ca, c’est la cryptanalyse !
Avec la puissance des ordinateurs, le chiffrement de César et certains autres codes sont devenus faciles à décoder, il a fallu en définir des plus compliqués…

Mais comment peut-on décoder un message chiffré ?
Par exemple le message suivant :
ZRJ VDAARJ CLWJJRCK RK ERARMHRCK ZWIHRJ RK RULMP RC EHDWKJ. ZRJ EWJKWCBKWDCJ JDBWLZRJ
CR FRMNRCK RKHR TDCERRJ GMR JMH Z’MKWZWKR BDAAMCR.

participants en pleine cryptanalyseVous avez un jeu de Scrabble © (français) à la maison ?
Faites alors 2 tableaux avec :

  • Pour chaque lettre du Scrabble © combien de fois elle est présente
  • Pour chaque lettre du message combien de fois elle est présente

-> il y a de fortes chances pour que la lettre la plus fréquente dans le message soit la lettre qui “code” la lettre la plus fréquente dans le jeu de Scrabble © 
C’est la méthode utilisée par Al-Kindi au 9e siècle, l’analyse de la fréquence des lettres !

La fréquence des lettres du jeu de Scrabble © approche celle de la langue française (voir http://www.apprendre-en-ligne.net/crypto/stat/francais.html).
Il reste ensuite à utiliser ses connaissances des mots de 2 et 3 lettres en français pour trouver d’autres lettres codées, puis de continuer avec les tableaux de fréquence des lettres pour en trouver d’autres, etc

 

Si ce genre d’activités vous plait, allez sur https://epreuve.concours-alkindi.fr/ et “entrainement”, pour résoudre des énigmes de cryptographie !

 

Un jeu ScratchJr inspiré par Pâques

Ca y’est, le week-end de Pâques a touché à sa fin. Avez-vous organisé une chasse aux oeufs?

Cela reste un jeu que l’on aime tous : les petits aiment découvrir ces oeufs cachés par-ci, par-là, et n’en ont jamais assez trouvés ; les grands aiment voir le plaisir que les petits ont à découvrir ces cachettes plus ou moins compliquées à trouver…

Je vous propose de mettre en scène cette activité sous ScratchJr. Il s’agit de faire une variante Pascale d’un jeu que j’ai initialement décrit sous le nom des “étoiles cachées”. Télécharger le document "étoiles cachées".

Tout d’abord, si vous ne l’avez pas encore, vous pouvez l’installer sur tablette (recommandé) ou sur téléphone : https://play.google.com/store/apps/details?id=org.scratchjr.android ou https://apps.apple.com/us/app/scratchjr/id895485086 

 Une fois l’icône visible sur votre écran, lançons l’app !

Après avoir autorisé photos et audio, on nous pose la question “Où utilises-tu ScratchJr ?” 

“A la maison” pardi en ces temps de confinement…

Justement, on appuie ensuite sur la petite maison et nous voici sur l’écran “Mes projets”.

On appuie sur le [+] plusun icône qu’on va retrouver plusieurs fois, et nous voici dans notre projet.

Note : On peut renommer le projet en appuyant sur le coin jaune en haut à droite de l’écran.

On commence par choisir un décor en appuyant sur [décor] décor en haut de l’écran. Parmi la liste qui se présente, vous pouvez appuyer sur les décors l’un après l’autre, voir son nom en haut, et quand cela vous convient, appuyer sur la [coche] coche en haut à droite, ou rappuyer sur le décor choisi. Dans mon cas, j’ai choisi un décor “Printemps”.

On va retirer le chat en appuyant longuement dessus, soit dans la scène au milieu, soit sur l’étiquette le représentant à gauche : une croix sur fond rouge apparaît, il faut appuyer dessus. 

retirer un lutin

Nous allons maintenant ajouter des oeufs de Pâques : on ajoute des “lutins” (personnages, objets…) en appuyant sur le [+] de gauche. Une bonne liste de personnages et d’objets apparaît, mais… pas d’oeuf de Pâques ! Il va donc falloir jouer les artistes… Sans aucun lutin sélectionné, appuyez sur le pinceau pinceau en haut à droite.

Vous voilà avec une palette d’artiste !

En choisissant l’outil “rond” à gauche, on peut dessiner un oeuf :

ellipse

Puis en appuyant sur le pot de peinture à droite et une couleur en bas, on peut remplir notre oeuf de la couleur choisie.

Enfin on peut renommer notre oeuvre en “Oeuf” en haut de l’écran, et valider avec la coche en haut à droite.

oeuf

Notre oeuf fait désormais partie de la liste des lutins quand on appuie sur [+], on peut alors facilement en ajouter 4 autres, et les déplacer dans notre décor. En appuyant sur le pinceau qui apparaît sur l’étiquette de chaque oeuf à gauche de l’écran, on peut également changer de couleur.

5 oeufs

On peut changer la taille de nos oeufs à l’aide des blocs roses : en ayant sélectionné l’oeuf à modifier, on appuie sur le bloc rose avec une silhouette et on glisse les 3 blocs représentés ci-dessous dans la partie du bas de l’écran. A chaque appui sur le 1er bloc, l’oeuf grossit, avec le 2e bloc il diminue de taille, avec le dernier il revient à sa taille initiale.

gros oeuf

On peut aussi déplacer et faire tourner nos oeufs à l’aide des blocs bleus :

oeuf penché

Une fois nos 5 oeufs positionnés, nous allons pouvoir les cacher en mettant des lutins au-dessus, et d’autres lutins ailleurs dans le décor.

Toujours avec le [+] de la partie gauche, on peut ajouter des lutins existants, puis les agrandir ou les rétrécir avec des blocs roses, les déplacer et les tourner avec des blocs bleus.

Enfin, il reste à mettre quelques blocs de code pour chacun de ces lutins (pas pour les oeufs) : les blocs jaunes correspondent à l’apparition de tous les lutins au début du jeu (drapeau vert), et à la disparition des lutins touchés (doigt qui touche la silhouette). 

Astuce : après avoir assemblé les blocs de code pour un lutin, il suffit de les glisser sur les étiquettes des autres lutins pour copier ce code…

code

Avant de proposer à votre enfant de jouer, il suffit de mettre la scène en plein écran grâce à l’icône correspondante plein écran et d’appuyer sur le drapeau vert pour que tous les lutins cachent les oeufs. L’enfant pourra alors appuyer jusqu’à découvrir les 5 oeufs cachés !

jeu en plein écran

Vous pourrez ensuite lui montrer le derrière du décor pour qu’il déplace les oeufs, les lutins, change les lutins, le décor, dessine des nouveaux oeufs… et vous fasse jouer !

 

Pixel art pour tous les âges !

Le pixel art, c'est pour tous les âges !

 

Bon disons à partir de ~4 ans, avec l'aide des grands frères / grandes soeurs ou des parents pour commencer. Je le sais car on l'a fait au Vaisseau, lors de plusieurs ateliers Parents-Enfants fin 2019 :

L'intérêt, c'est de comprendre que les images à la télé ou sur les ordinateurs, en fait elles sont toutes faites de pixels (PICture ELements pour ceux qui sont à l'aise avec l'anglais)...
Donc prenez une photo et zoomez jusqu'à ce qu'on voit les carrés, et faites bien observer que chaque carré ne contient qu'une couleur :

L'autre intérêt, c'est que c'est une activité qui peut se décliner sous plein de formes différentes

  • version numérique sur téléphone, tablette, ordinateur (on va y revenir), 
  • mais aussi aussi activités manuelles avec au choix : des perles à repasser, des petites briques "mono-pic", des grilles papiers à colorier, des gommettes à coller, des notes adhésives... voire même des carrés de moquette ! Si, si, on a expérimenté au Vaisseau...

 

 

Quelques notes adhésives...

Un papillon en moquette...

 

Donc, en cette période de confinement, où on n’a pas toujours tout sous la main, je vous propose de commencer avec... du papier.
On peut approcher cette activité sous plusieurs angles.

Du plus facile au moins facile :

(*) Coloriage par numéro (ou autre symbole) :
Soit vous pouvez imprimer les grilles fournies ci-dessous, soit vous avez du papier quadrillé et vous préparez une grille à partir du modèle sur l'écran du téléphone ou de l'ordinateur.

enlightened Cliquer ici pour télécharger des Grilles à colorier

(**) Reproduction d’un modèle :
Attention, ce n’est pas si facile, les plus grands doivent donc aider les plus petits, le fonctionnement en binôme est en général une très bonne approche !
L’idée est d’apprendre à lire en utilisant la grille, c’est-à-dire ligne par ligne, en comptant le nombre de carrés sans couleur en début de ligne, puis le nombre de carrés dans la 1e couleur et les reproduire, puis le nombre de carrés dans la 2de couleur et les reproduire, etc.
On peut aussi vouloir dessiner une zone de couleur plutôt que ligne par ligne. C’est possible bien sûr, mais attention à ne pas se décaler !
La méthode ligne par ligne prépare aussi au niveau de difficulté suivant : le décodage.
Augmentez la difficulté en passant de dessins en 10x10 à des dessins 15x15 et plus.

enlightened Cliquer ici pour télécharger des Grilles à reproduire
 

(***) Décodage d’images :
Cette activité demande de la concentration et de l’attention, mais elle est très excitante puisqu’on découvre petit à petit une image, et qu’on essaye de deviner de quoi il s’agit…
Dans la suite logique de l’activité précédente, il s’agit de reporter sur une grille, ligne après ligne, les carrés de couleur indiqués dans le code par leur quantité et leur couleur.
Les grands pourront donc coder des images (pas très compliqué, juste un peu long à écrire ;) et les jeunes (ou autres grands !) pourront les décoder en les dessinant…

enlightened Cliquer ici pour télécharger des Grilles à décoder

 

Ensuite, vous pouvez proposer aux jeunes de passer aux outils numériques, présentés ci-dessous.
Je vous conseille de ne le faire que dans un 2e temps : l’apprentissage est plus complet avec l’approche sur papier (ou legos, perles,...) et en binôme car cela mêle une approche visuelle (le modèle, la grille), auditive (vous “dictez” les carrés à colorier) et kinesthésique (la manipulation du crayon, des legos, des perles…). Une fois cette appropriation faite, l’utilisation des outils numériques s’appuie dessus pour permettre de développer l’autonomie (l’enfant pourra peu à peu le faire tout seul), l’auto-contrôle (avec certaines apps, il pourra vérifier, voir ses erreurs et les corriger) et le suivi de sa progression (l’aider pour enregistrer ses réalisations pour qu’il voie par la suite qu’il fait des choses de plus en plus difficiles).

Il existe beaucoup d’outils numériques, en voici juste quelques-uns, n’hésitez pas à en proposer d’autres :
Coloriage par numéro

  • App : Sandbox Pixel Coloring https://play.google.com/store/apps/details?id=sandbox.art.sandbox
  • PC : https://www.agame.com/game/pixel-art-color-by-number mettre en “plein écran” (icone en bas à droite du dessin), mais même ainsi, plutôt compliqué à faire avec la souris pour les plus jeunes (à moins de l’utiliser comme un moyen amusant de contrôler la souris précisément, quelque soit l’âge !) ; plus de 150 dessins disponibles...
  • http://coloritbynumbers.com/online/animals Ce n’est pas du pixel art, mais il a l’intérêt de permettre de changer les symboles (points de couleurs, nombres, lettres, formes géométriques ; utiliser la roulette en haut à gauche), ce qui aide à aborder le codage de manière progressive ; seuls 3 dessins sont accessibles sans création de compte [gratuitement].

Reproduction ou décodage d’images

 

Pour aller plus loin

  • Coloriage au numéro en 3D avec par exemple https://play.google.com/store/apps/details?id=com.pixel.coloring.color.by.number (attention, présence de pubs : icône TV = regarder une pub pour accéder au modèle)
  • Animations avec piskelapp.com ou Pixel station : il s’agit de faire une copie de la 1e image et de la modifier un petit peu, puis de faire une copie de cette dernière et de la modifier un petit peu à son tour, etc C’est le principe du dessin animé.


Y’a-t-il du pixel art avancé pour les adultes?

Et bien, regardez cet exemple… de pixel art haute résolution…

Source : https://www.flickr.com/photos/rodrixap/10688437793, Nature par RodrixAP, CC BY 2.0

Vous pouvez en voir d’autres du même artiste : https://www.flickr.com/photos/rodrixap/albums/72157637154901153 

Donc si vous vous sentez créatif, vous pouvez commencer petit sur piskelapp, puis agrandir votre grille et votre imagination s’étend autour du dessin initial…

Partagez vos oeuvres !

Et si vous ne vous sentez pas (encore) créatif, le coloriage par numéro de pixel art (app Sandbox Pixel Coloring par exemple) est très relaxant...

 

1000 bornes en mode coopératif

Vous connaissez le 1000 bornes? Ce jeu de société où il faut cumuler les kilomètres pour gagner.
 
Ces derniers temps, j'ai eu l'occasion d'observer des jeunes enfants de 5-9 ans qui jouaient au 1000 bornes. Avec un peu de frustration et peut-être un peu d'acharnement pour certainsangry. Après tout, c'est un jeu où un des moyens d'avancer, c'est de plomber l'autre à coup d'accident et autre panne d'essence!
Alors j'ai testé une version coopérative du 1000 bornes, où les malchances seraient dues au hasard et où l'objectif serait d'amener l'ensemble des voitures aux fameuses 1000 bornes. Et devinez quoi? Et bien les enfants préfèrent cette version! Et les grands aussi, avec des "ça fait des parties plus dynamiques!".
 
Allez, assez causé, voici donc le 1000 bornes en version coopérative.
 
Nous avons la version avec plateau, mais rien n'empêche d'y jouer avec la version cartes uniquement.
Matériel supplémentaire nécessaire:
  • un dé
  • … et puis c'est tout!yes
Nous avions un gros dé de récupération, sur lequel nous avons collé des gommettes de couleur, mais n'importe quel dé fera aussi bien l'affaire. Sur la version plateau, il y a 4 voitures, donc une face du dé pour chaque voiture. Si le dé est numéroté, griffonner sur un morceau de papier les numéros correspondant aux joueurs. C'est un dé à 6 faces, ce qui laisse 2 faces vides, soit 1 chance sur 3 qu'il ne se passe rien de mal pendant son tour wink.

Préparation

Séparer les cartes "malchances" (cartes attaques) des autres cartes (dites normales pour la suite) et en faire un tas à part.
Distribuer 2 cartes normales à chaque joueur.
Chaque joueur peut s'attribuer une voiture. Au niveau du jeu en lui-même, ça n'apporte rien de particulier. Mais le bonus, c'est qu'on peut aider quelqu'un plutôt qu'une voiture impersonnelle: "Moi, j'aide Mamanheart".
 

Déroulé

Chaque joueur joue à tour de rôle.
Un tour se déroule de la façon suivante:
  1. le joueur tire le dé: si le résultat est une voiture qui n'est actuellement pas frappé de malchance, il tire une carte malchance pour la voiture désignée par le dé, carte qui s'applique immédiatement
  2. le joueur tire une carte normale de la pioche
  3. le joueur joue une carte sur n'importe quel véhicule: parade, botte ou distance
 
Notes sur les malchances:
  • on évitera de placer une carte malchance sur une voiture qui n'a pas encore démarrée
  • les malchances ne se cumulent pas sur une même voiture
  • une voiture qui a accompli ses 1000 bornes ne peut pas être victime d'une malchance
  • lorsque la pile malchance est vide, on mélange les cartes malchances jouées, et on refait une nouvelle pile
On peut jouer avec autant de voitures que de joueurs, ou avec les 4 voitures, même s'il y a moins de 4 joueurs.
 
Avec cette version, tous les joueurs participent plus au jeu. Un joueur dont la voiture est bloquée peut aider une autre voiture, et le premier joueur arrivé continue à jouer tant que toutes les voitures ne sont pas arrivées.
 
N'hésitez pas à tester cette variante et à nous dire en commentaires ce que vous en pensez!

Python: serpent, langage ?

Python: langage ou serpent ?

 

Le mot python vous parle forcément mais quelle définition vous vient à l’esprit? Quelle image associe votre cerveau à l’écoute de ce mot?

Ne vous inquiétez pas j’arrête les questions métaphysiques smiley

Pour ma part quand j’évoque le mot python je pense dans un premier au temps au serpent !

 

 

Certe c’est beau… mais je suis pas trop fan à vrai dire…surprise

Ensuite dans un second temps je pense au langage informatique.

En tant que data scientist c’est un langage que j’utilise au quotidien, et le plus populaire dans mon job.

Pourquoi me diriez vous? Car il est facile à utiliser, avec une disponibilité décente de bibliothèques orientées data science et une grande communauté.

/!\ important la communauté, très important…surtout quand vous criez à l’aide cheeky

 

Historique:

 

C'est en 1989, que Guido van Rossum écrit les premières lignes du langage, très inspiré du langage ABC (un autre langage de programmation, avis au curieux ABC)

Pourquoi Python? cool

Parce que le développeur est un grand fan de la série télévisée Monty Python's Flying Circus.

Python est un langage open source supporté, développé et utilisé par une large communauté.

Il est également apprécié par les pédagogues qui y trouvent un langage où la syntaxe est élégante, son typage dynamique et le fait qu'il soit interprété. Comprenez par là, que c’est un langage puissant, facile à apprendre, permettant ainsi une initiation aisée aux concepts de base de la programmation.

 

Première version

20 février 1991

Auteur

Guido van Rossum

Dernière version

3.7.4 (8 juillet 2019)

Système d’exploitation

Multiplateforme

Site web

www.python.org

 

3 raisons de se mettre à python:

  • Simple

Si tu es débutant, fonce ! Python c’est devenu la référence dans l’éducation nationale comme premier langage de programmation.

Ce langage est facile à prendre en main, pourquoi je te dis ça ?

  • Syntaxe simple:
    Plus de parenthèses, accolades, crochets, points-virgules, etc…
    La syntaxe du code utilise l’indentation.
    Par exemple après une condition “if”, boucle “while”, fonction “def” ou une classe “ class” faut juste mettre une indentation.
  • Typage dynamiques:
    Plus besoin d’écrire le type de variables. Python saura les identifier directement en fonctions des opérations effectuées avec.
  • Similaire à du langage parlé:
    Un exemple
    name = “Marc”
    print(name)

 

Au final tu obtiens du code qui est relativement facile à lire.

C’est visuellement agréable et tu comprends le code plus rapidement.

  • Multi fonction

Python fonctionne sur tous les OS, que tu sois sur Windows, Mac ou Linux, tu pourras l’utiliser. Et surtout Python peut être utilisé dans des tas de domaines… même des domaines auxquels on s’attend moins comme le développement de jeux vidéo ou les applis de bureau. Voici trois domaines où python est principalement utilisé:

  • Développement Web
    Python est beaucoup utilisé dans le Web. Il y a même des frameworks très évolués et très populaires comme Django, Flask pour bien structurer ton travail en Python.
    Petite précision de taille, aujourd’hui, il n’y a pas vraiment de Front-End avec Python.
    Donc si tu veux devenir développeur Full-Stack, tu devras toujours apprendre le Javascript.
  • Data Science
    C’est le langage le plus populaire dans le Big Data, qui est lui-même un domaine en pleine expansion. Si tu veux te lancer dans les statistiques et analyser des données et même pouvoir visualiser ces données, Python est le maître.
    Python mène aussi la course en tête dans le domaine de l’intelligence artificielle.
    Je ne vais pas faire un cours là-dessus, mais grosso modo c’est lorsqu’on apprends aux machines à réfléchir en analysant des tas de données.
  • Populaire

Python est un langage assez ancien…comme vous avez pu le voir dans l’historique un peu plus haut. Après toutes ces années, s’il est plus populaire que jamais, c’est qu’il a su évoluer.

le sondage de StackOverflow est formel ! Python est le langage qui a la plus grosse croissance ces dernières années et c’est prévu de continuer comme ça dans les années à venir : lien vers l’article

Il faut savoir que tous les géants de la Tech utilisent Python : Google, Facebook, Netflix, Amazon, Nasa, IBM… Python c’est sérieux, ce langage qui plaît à tout le monde, plait aussi aux recruteurs et ça, c’est bon pour ta carrière…

 

Donc pourquoi python?

 

Because python is awesome!

 

Credits to this website

 

  • Python est gratuit et "Open Source", on peut l'utiliser sans restriction dans des projets commerciaux.
  • Python est portable : MacOS, BeOS, NeXTStep, MS-DOS .. et les différentes variantes de Windows.
  • Python convient aussi bien à des scripts d'une dizaine de lignes de code qu'à des projets complexes de plusieurs dizaines de milliers de lignes.
  • La syntaxe de Python est très simple, un programme Python est souvent de 3 à 5 fois plus court qu'un programme C ou C++, ou même Java équivalent. Ce qui représente en général un temps de développement de 5 à 10 fois plus court et une facilité de maintenance largement accrue.
  • Python est un langage qui continue à évoluer, soutenu par une communauté d'utilisateurs enthousiastes et responsables, dont la plupart sont des supporters du logiciel libre.
  • ...

 

Quelques chiffres clés:

 
  • Classement des langages en fonction de leur base d’utilisateurs mensuels actifs (2017):

 
  • Les salaires et les possibilités d'emploi pour les langages de programmation les plus populaires (2018):

 
  • Combien y a-t-il de programmeurs Python dans le monde (2018) ?

 

Selon SlashData, il y a maintenant 8,2 millions de développeurs dans le monde qui codent en Python et cette population est maintenant plus importante que ceux qui programme en Java, qui sont 7,6 millions.

Le langage dont la population de développeurs est la plus grande est JavaScript. Ils sont environ 11.7 millions.

 

Apprentisage:

 

 

Derniers blogs Derniers blogs

Confinement Automne 2020 : des ateliers en ligne

Alors que 2021 commence, on sait déjà quelque chose de plus qu’en 2020 : c’est qu’on ne sait pas à quoi va ressembler cette année ! En 2020, à Graines2Tech, on avait bien prévu de... Lire la suiteÀ proposConfinement Automne 2020 : des ateliers en ligne »

Collaboration et art dans le numérique !

Hollywood nous voilà !   Semaine 3, programmation d’une scénette.   Cette semaine les enfants vont pouvoir laisser s’exprimer le Spielberg qui sommeille en eux. L’exercice du... Lire la suiteÀ proposCollaboration et art dans le numérique ! »

L'application éducative parfaite existe-t-elle ? (ou "Ce qui intéresse les enfants")

Quand il s'agit de trouver une application à la fois éducative et intéressante pour les enfants, ce n'est pas la chose la plus évidente. Pour avoir utilisé une bonne dizaine d'applications (sur tablettes Android) avec des élèves de la Grande Section jusqu'au CM2, on se rend compte que, parfois, ce qui nous intéresse nous, n'est pas ce qui les intéressent eux ! Lire la suiteÀ proposL'application éducative parfaite existe-t-elle ? (ou "Ce qui intéresse les enfants") »

Premiers pas avec Unity3D

Installation et premier jeu avec Unity3D Lire la suiteÀ proposPremiers pas avec Unity3D »