15 énigmes ludiques pour s’initier à la programmation Python
Première mise en ligne le 23 décembre 2023
Après 25 énigmes ludiques pour s’initier à la cryptographie, Pascal Lafourcade et Malika More nous proposent cette fois-ci quinze énigmes pour s’initier à la programmation Python, aux éditions DUNOD.
La gymnastique est identique à celle du livre précédent : la première partie est dédiée aux énoncés des énigmes, la partie centrale correspond aux douze pages d’indices et la partie finale (près des 3/4 de l’ouvrage) présente les solutions. Le tout est enrichi d’anecdotes et de compléments sur l’histoire de l’informatique et des messages secrets.
Les énigmes sont variées avec des consignes plus ou moins explicites et dont la résolution passe par l’écriture d’un programme en Python. « Elles nécessitent plus ou moins de logique, de réflexion et d’astuce. Cependant elles sont toutes accessibles à l’aide de concepts abordés au lycée ». L’ouvrage, qui « s’adresse principalement à des lycéens scientifiques », n’est pas abordable par tous. En effet, il faut posséder un assez bon niveau en algorithmes et programmation pour oser se confronter aux défis du livre.
Malgré la brève introduction pour présenter Python 3, il sera nécessaire au néophyte d’utiliser une banque documentaire complémentaire sur ce langage pour attaquer sereinement les programmes.
La première énigme, de niveau 1, n’exige qu’un programme de sept lignes... Mais on doit dans un premier temps ouvrir un fichier texte, le parcourir ligne par ligne, y extraire chaque mot pour les convertir en nombre entier, puis en caractères ASCII, et enfin réaliser une concaténation pour obtenir et afficher le résultat, avant de refermer le fichier texte.
Les défis proposés sont très intéressants. Notamment, on découvre comment réaliser un programme permettant de révéler un texte caché dans une image, ou un autre permettant de décrypter un document chiffré par la méthode de la scytale...
Pascal Lafourcade et Malika More proposent également, avec Guenaëlle De Julis, « 15 énigmes ludiques pour se perfectionner en programmation Python ».