SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

Projet « Cryptographie » – Séance 14 (optionnelle) Programmer l’affichage de l’histogramme (2)


1, 2, 3, codez ! - Activités cycle 4 - Projet « Cryptographie » - Séance 14 (optionnelle) : Programmer l'affichage de l'histogramme (2/2)

Discipline dominante

Mathématiques

Résumé

Les élèves terminent leur programme en lui faisant tracer le graphique correspondant à l’histogramme des fréquences.

Notions

Idem séances précédentes

Matériel

Idem séances précédentes

Étape 4 : tracer l’histogramme (20 minutes)

Le tracé de l’histogramme reprend les notions déjà abordées au cours des étapes précédentes, le travail ne pose donc pas de grande difficulté.

Notes pédagogiques

  •  Si les élèves utilisent un texte court, la fréquence de chaque lettre est un tout petit nombre (entre zéro et quelques unités). Si l’on utilise directement ce nombre comme ordonnée, on obtiendra un trait de quelques pixels de hauteur seulement. Pour éviter cela, on utilise un coefficient multiplicateur. Si ce coefficient est fixé à 100, une lettre apparaissant 2 fois dans le texte sera représentée graphiquement par un trait de 1x100=200 pixels de hauteur.
  •  Dans un premier temps, on peut fixer arbitrairement la valeur de ce coefficient multiplicateur. Dans un second temps, il est préférable de le calculer, de façon à « normaliser le graphique » (voir l’étape ci-après). C’est pour cette raison qu’on a nommé la variable « facteur de normalisation »…

Étape 5 : normaliser l’histogramme (20 minutes)

L’algorithme permettant de normaliser le graphique n’est pas trivial. Il est peu probable que des élèves de cycle 4 le trouvent tout seuls. Rien n’interdit en revanche de l’élaborer collectivement ou, autre façon de faire, de montrer le programme aux élèves et chercher à comprendre son fonctionnement. On peut « verbaliser » cet algorithme de la façon suivante. Pour normaliser le graphique, il faut :

  •  Trouver la lettre la plus fréquente
     Pour cela, on décide que la lettre la plus fréquente est la première (lettre A), puis on parcourt le tableau des fréquences : on compare la fréquence de la lettre la plus fréquente à celle de la lettre suivante. Si cette dernière est supérieure, alors cet élément suivant devient lui-même l’élément le plus fréquent…
  •  Une fois que l’on connaît la lettre la plus fréquente, on s’arrange pour que l’ordonnée de la fréquence de cette lettre corresponde à l’ordonnée maximale qu’on a définie (Ymax).

Le résultat est :

Étape 6 : graduer l’axe des ordonnées (10 minutes)

Le professeur explique que, maintenant que le graphique est normalisé, il devient facile de le graduer : on sait quelle est l’ordonnée maximale (Ymax) et à quelle valeur elle correspond (la fréquence de la lettre la plus fréquente).
Le facteur de normalisation (voir étape précédente) correspond justement à l’écart, sur l’axe des ordonnées, entre 2 fréquences unités.
Tracer des graduations sur l’axe Y se fait donc de la façon suivante :

Le plus logique est de placer ces instructions à la fin de la fonction « Trace_legendes_graphique » créée précédemment.

Étape 7 : analyser quelques textes (10 minutes)

Les élèves vérifient le bon fonctionnement du programme en le testant sur des textes courts, sur lesquels ils peuvent calculer rapidement les fréquences à la main.
Le texte suivant : « Al-kindi, inventeur de l’analyse fréquentielle » (on peut laisser les accents, puisque notre programme les gère), entré dans notre programme, donne cet histogramme :

Prolongement

Les élèves peuvent désormais cryptanalyser un texte long, en reprenant la méthode utilisée en Séance 4 et en utilisant leur programme Scratch pour générer l’histogramme de fréquences.