Jeu de cartes sur les pipes Unix
(punkx.org)- Un jeu où les enfants apprennent les combinaisons de pipes en enchaînant des commandes UNIX de base comme
cat,grep,tail,head,wc,sortetuniqavec des cartes - Le principe suppose que les parents connaissent les commandes de base et montrent leur exécution réelle ; en l’absence d’environnement UNIX, il est possible d’utiliser jslinux dans le navigateur
- Les joueurs créent une chaîne de commandes correspondant à l’objectif d’une carte de tâche, avec par exemple un pipeline comme
cat 03.txt | sort | uniq -c | sort -n | tail -1 - À chaque manche, le plus jeune joueur choisit le mode de victoire — chaîne la plus courte ou chaîne la plus longue — et le joueur qui termine la tâche en premier marque des points
- Les PDF des cartes et le code sont disponibles publiquement pour impression et utilisation, et une extension plus difficile sur la Process Substitution est également proposée
Objectif du jeu de cartes et matériel
- UNIX Pipe Card Game est un jeu de cartes qui apprend aux enfants à combiner des commandes UNIX avec des pipes
- Les commandes couvertes dans le jeu de base sont
cat,grep,tail,head,wc,sortetuniq - Les parents doivent montrer l’exécution des commandes sur un vrai ordinateur ; s’ils n’ont pas de système UNIX, ils peuvent utiliser jslinux dans le navigateur
- Les ressources à imprimer soi-même et le code sont disponibles publiquement
- unix-pipe-cards.pdf : PDF des cartes
- unix-pipe-box.pdf : PDF de la boîte
- unix-pipe-game : code
- L’extension plus difficile UNIX Pipe Game - Process Substitution couvre la substitution de processus ainsi que
paste,tr,cutetbc
Déroulement d’une manche et exemple de chaîne de commandes
- L’objectif de la manche d’exemple est d’afficher la ligne la plus fréquente dans un fichier
- Lire le fichier avec
cat - Trier les lignes avec
sort - Compter les lignes en double avec
uniq -c - Appliquer un tri numérique avec
sort -n - Afficher la dernière ligne avec
tail -1
- Lire le fichier avec
- Voici un exemple de chaîne de commandes qui résout cet objectif
cat 03.txt | sort | uniq -c | sort -n | tail -1
- Le déroulement de base suit cet ordre
- Le plus jeune joueur choisit le format de la manche
- La personne qui crée la plus petite chaîne de pipes accomplissant la tâche gagne
- La personne qui crée la plus grande chaîne de pipes accomplissant la tâche gagne
- Le plus jeune joueur choisit une tâche parmi les cartes de tâche ; une même tâche ne peut pas être choisie deux fois
- Les cartes sont mélangées et placées face cachée sur la table
- Chaque joueur, dans le sens des aiguilles d’une montre, pioche la carte du dessus du paquet et tente d’accomplir la tâche
- Le premier joueur à accomplir la tâche marque des points
- La partie se termine lorsqu’il n’y a plus de tâches
- Le plus jeune joueur choisit le format de la manche
Problèmes demandés par les cartes de tâche
- Les exemples de tâches sont des objectifs pouvant être résolus par des combinaisons de commandes UNIX, comme sélectionner des lignes, rechercher des chaînes, compter des éléments ou contrôler la sortie
- Afficher la deuxième ligne
- Afficher l’avant-dernière ligne
- Afficher la 7e ligne
- Afficher la ligne la plus fréquente
- Afficher la ligne la plus rare
- Compter le nombre de lignes contenant
"rises" - Afficher la première ligne contenant
W - Compter le nombre de lignes contenant
"in" - Afficher deux lignes aléatoires
- Compter le nombre de mots des deux dernières lignes
- Afficher les 7e et 8e lignes
- Compter le nombre de lignes contenant
! - Compter le nombre de lignes ne contenant pas
! - Créer une chaîne de commandes qui n’affiche rien
2 commentaires
Avis sur Hacker News
J’ai créé ces jeux de cartes (https://punkx.org/) pour apprendre des choses à ma fille, et jusqu’ici ça marche plutôt bien.
Les jeux Unix pipes, langage machine 4917 (https://punkx.org/4917/) et pointeurs (https://punkx.org/c-pointer-game/) sont particulièrement bons ; pour le jeu Python, on n’utilise qu’une dizaine de cartes.
Vous aimerez peut-être aussi le jeu de plateau sur les dépassements de tampon en assembleur RISC-V https://punkx.org/overflow/, et selon le niveau de l’enfant, il y a aussi un jeu de serpents et échelles avec des goto : https://punkx.org/overflow/build/snakes-and-ladders.pdf
Si vous avez des enfants, je recommande aussi d’imprimer https://punkx.org/panic/. Il contient des farces qui tiennent sur une carte de poker, par exemple appuyer aléatoirement sur Retour arrière ou Espace toutes les 30 secondes, ou appuyer aléatoirement sur W si Minecraft est ouvert.
Je donne beaucoup de jeux à des enseignants et à des écoles, donc si cela vous intéresse, envoyez-moi un e-mail.
P.-S. : je suis encore à London pendant une semaine, donc si vous commandez maintenant, l’expédition sera retardée, mais en échange j’ajouterai un ou deux jeux de cartes supplémentaires dans le colis.
Au passage, l’extension du jeu Unix pipes porte entièrement sur la substitution de processus ; je ne pense pas que ce soit utile aux enfants, mais les puzzles sont corrects.
Une chose m’a sauté aux yeux : dans le jeu, il y a des objectifs comme « afficher la deuxième ligne » ou « afficher la septième ligne », mais ces deux lignes sont vides. Donc, strictement parlant, un
grepqui ne trouve aucune correspondance pourrait aussi être une bonne réponse.Par curiosité, j’aimerais savoir comment vous gérez l’impression. Vous les fabriquez vous-même, c’est de l’impression à la demande, ou vous commandez en gros puis expédiez vous-même ? Je trouve toujours intéressant de voir comment on gère la vente de petits produits physiques.
Mes filles sont encore trop jeunes pour les utiliser, mais je trouve ces jeux excellents et j’ai hâte de les ressortir dans environ 8 ans.
Je me demande si les enfants d’aujourd’hui peuvent vraiment comprendre ce genre de choses.
Je n’ai pas d’enfants et je ne côtoie pas d’enfants, donc j’aimerais que ma question soit prise comme une vraie question sincère.
La difficulté, c’est que je dois rivaliser avec Snapchat et Google/Meta pour capter son attention. L’école l’épuise aussi pas mal, et les streaks de Snapchat sont vraiment pénibles. Plus elle a d’amis, plus elle a de streaks à maintenir ; elle doit envoyer quelque chose comme 400 messages par jour, et ça ne s’arrête jamais.
Je lui explique que 100 000 développeurs, psychologues, responsables produit, etc. vont travailler chaque jour en réfléchissant à la manière d’extraire le maximum de valeur de son attention. Donc je lui dis qu’elle doit rester constamment consciente de ce que « l’algorithme » la pousse à faire.
Elle a compris assez vite les pipes Unix, mais ne les utilise pas souvent. Elle a tout de même saisi l’idée qu’un programme peut lire la sortie d’un autre programme, et comprendre la ligne de commande n’a pas été si difficile.
J’ai toutefois utilisé plusieurs dispositifs. Par exemple, sur son PC Windows, j’ai remplacé le shell
explorerparcmd.exepour qu’au démarrage elle arrive directement à l’invite de commandes, puis je l’ai laissée explorer et réparer elle-même. J’ai aussi créé une chasse au trésor dans le système de fichiers où il fallait utiliserdir,cd, etc. pour trouver des fichiers, et je la récompensais en Robux à chaque niveau terminé dans le jeu Bandit de https://overthewire.org/wargames/bandit/.Je veux lui apprendre comment fonctionne un ordinateur, et comment faire faire à un ordinateur ce qu’on veut. Ce que sont les registres, les instructions, les programmes et les processus — bref, les bases de chez bases.
En chemin, je lui apprends aussi à découper les problèmes, à réfléchir et surtout à apprendre. J’essaie de lui enseigner le cœur des choses, pour qu’il n’y ait pas de mystère entre le fait d’appuyer sur une touche et de voir un caractère apparaître à l’écran, ou la manière dont ChatGPT prédit le mot suivant. En ce moment, je crée un jeu de plateau de réseau neuronal récurrent à 3 neurones qui apprend à compter : https://punkx.org/move-37/rnn.pdf
Au final, je ne suis pas sûr que ce qu’on enseigne à un enfant soit si important que ça.
En cours, mes collègues devaient commencer par expliquer des notions comme les fichiers et les dossiers.
Honnêtement, je ne trouve pas ça si grave. Les ordinateurs vont probablement suivre une trajectoire similaire à celle des voitures. La plupart des gens ne connaîtront que le strict minimum nécessaire pour manipuler l’objet, et les connaissances plus approfondies resteront l’affaire des passionnés et des professionnels.
Donc, même si l’intérieur des ordinateurs devient plus complexe, les usages courants vont sans doute se réduire de plus en plus.
Pour jouer, il faudrait vraiment corriger le traitement des pipes sur https://exaequos.com
Si vous jouez au jeu du nombre minimal de pipes avec quelqu’un qui a grandi avec
awk,perl, etc., la difficulté augmente immédiatementSinon, conformément à l’esprit du jeu, on peut jouer en apprenant chaque outil pour son usage d’origine
Pour les traitements rapides et ponctuels, on utilise beaucoup
awk/sed, avec en général un modèle de pensée assez similaire. On crée un flux d’entrée, on met les données sous forme d’enregistrements avecsed, on traite ces enregistrements avecawk, puis on peaufine la sortie avec des choses commesort/uniqDans bien des cas,
sedetawkpeuvent se remplacer l’un l’autre, mais procéder ainsi prend plus de temps à se représenter mentalement et rend la réutilisation plus difficileLes règles disent que le joueur qui termine la tâche en premier gagne la manche, mais je me demande comment fonctionne le format la plus longue chaîne de pipes
Ceux qui décernent le prix
uuocne devraient pas tarder à arriverMettre
catau début simplifie l’ajout de quelque chose en amont du pipelineJ’adore le fait qu’on puisse l’imprimer soi-même
Je me demande si je ne vais pas l’imprimer tout de suite sur l’imprimante du bureau
Ce qui est bien avec ce jeu, c’est que la personne qui connaît UUoC gagne
cat file.txt | tr a-z A-Z | sortest perdant, ettr < file.txt a-z A-Z | sortest gagnant19 $ de frais de livraison pour le Canada, ça me paraît un peu excessif
Je me demande s’il y a des gens dans le Grand Vancouver intéressés par une commande groupée
Cela dit, chaque deck dispose d’un PDF, donc vous pouvez l’imprimer vous-même dans une imprimerie de quartier. Ce sera moins cher si vous n’imprimez pas la boîte
L’imprimer simplement sur du papier A4 et le découper aux ciseaux ne pose pas vraiment de problème. Ça aide même parfois quand on veut l’expliquer à quelqu’un avec un stylo et du papier
Dans ce cas, la boîte est ici : https://punkx.org/unix-pipe-game/unix-pipe-box.pdf et les cartes ici : https://punkx.org/unix-pipe-game/unix-pipe-cards.pdf
C’est 8 000 ₩. Si quelqu’un a un exemplaire, merci de partager votre avis.