Un premier article mentionne Code Puzzle dans MathémaTICE, il est l’œuvre de Patrick Raffinat qui présente succinctement l’application.
Patrick présentait sa découverte et son utilisation dans sa classe de 1ere année d’IUT, je vais approfondir un peu le sujet en présentant un second aspect du site que sont les défis (Attention à ne pas confondre avec les défis présentés par Patrick dans son article qui n’ont rien à voir) et en illustrant mon propos avec la scénarisation d’un sujet de l’épreuve pratique de NSI, que l’on pourra décliner en SNT ou en cours de maths (Le principe de la scénarisation, pas le sujet lui-même ...).
Code Puzzle est une application proposée en ligne par Laurent Abbal, présentée sur le site de la C2iTICE de l’IREM.
Laurent Abbal a repris le code de Parsons Puzzle, logiciel libre développé par Ville Karavirta, Petri Ihantola, Juha Helminen et Mike Hewner, dont les sources sont accessibles sur Github, pour en faire quelque chose d’un peu plus pratique. La version originelle est accessible ici.
Il est à noter qu’une version adaptée de Code Puzzle est mise à disposition dans Capytale, ce dont je ne peux pas vous parler puisque je n’y ai pas accès (On parle de Capytale ici dans MathémaTICE) ...
Il existe bien sûr des applications qui proposent des puzzle de Parsons dans d’autres langages, je vous laisse chercher si cela vous intéresse ...
Choix du sujet
J’ai choisi le sujet totalement au hasard, il se peut que certains sujets ne se prêtent pas à cet exercice ou au contraire que d’autres soient plus faciles à mettre en œuvre, et après coup, je n’en ai pas une meilleure idée, je pense avoir bien cerné le problème avec ce sujet, il m’a permis en tout cas d’explorer toutes les facettes de cette application, enfin je crois.
L’ordinateur sur lequel je travaillais lors des prémices de ce travail ne disposait que de deux sujets de l’épreuve pratique de NSI de 2022 et allez savoir pourquoi, j’ai pris un des deux au lieu d’aller chercher sur le Web un sujet plus conforme à ce que je faisais en cours actuellement par exemple.
L’heureux élu est donc le sujet 20 de l’épreuve pratique de 2022 :
Mise en œuvre de l’exercice 1 du sujet, au plus prés de l’énoncé officiel
Vous allez trouver ci-dessous ce qu’il est possible de faire dans Code Puzzle avec l’option défis :
- Le texte de l’énoncé est rédigé en Markdown ;
- Il n’y a rien de donné à l’élève dans la partie script à écrire comme dans le sujet officiel ;
- Les tests sont au nombre de trois pour éviter que l’élève ne soit tenté d’écrire une ineptie telle que celle-la :
def xor(a,b):
if a==[1,0,1,0,1,1,0,1]:
return [1,1,0,1,1,0,0,1]
else:
return [1,1,1,0]qui bien sûr satisfait aux deux tests de l’énoncé.
Il faut obligatoirement mettre un test, et l’on peut en mettre autant que l’on veut.
On peut aussi proposer un code partiellement fourni à compléter.
Mise en œuvre de l’exercice 1 du sujet, en utilisant les puzzles de Parsons :
- Uniquement avec les lignes de code à remettre dans l’ordre et des lignes surnuméraires (optionnel) :
- Uniquement avec les lignes de code à remettre dans l’ordre et des trous à compléter ;
- Uniquement avec les lignes de code à remettre dans l’ordre et des QCM à renseigner ;
- On peut combiner les trois options ci-dessus pour obtenir d’autres puzzles.
Mise en œuvre de l’exercice 2 du sujet, en utilisant un défi :
Dans cet exercice, il y a du code à compléter et du code à prendre en compte (la class Carre
) pour pouvoir tester la fonction, je fais donc le choix d’un défi dans Code Puzzle :
La mise en œuvre de l’exercice 2 du sujet, en utilisant les puzzles de Parsons n’est pas très pertinente même si l’on peut ne donner que la fonction à compléter dans un puzzle, le problème est que l’élève va devoir remettre la fonction dans l’ordre avant de la compléter, donc je laisse tomber cette option ....
Il est à noter que ces puzzles peuvent être intégrés dans un site Web comme ci-dessus mais aussi dans un Notebook :
Pour l’intégration dans un Notebook, voir par exemple ici (Voir l’exercice 2), travail réalisé sur l’excellent site info-mounier.
Sitographie :
- De nombreux puzzles proposés sur le site Computer Scienced avec des parcours pour les 11-14 ans et pour les 14-16 ans.
- Défis Python : Testez vos connaissances en Python à l’aide des défis suivants ! (Le site dont parle Patrick dans son article).
Références :
- Parsons, D., & Haden, P. (2006, January). Parson’s programming puzzles : a fun and effective learning tool for first programming courses. In Proceedings of the 8th Australasian Conference on Computing Education-Volume 52 (pp. 157-163). Australian Computer Society, Inc.
- Ihantola, P., & Karavirta, V. (2011). Two-dimensional parson’s puzzles : The concept, tools, and first observations.Journal of Information Technology Education, 10, 119-132.
- CS Teaching Tips - Use Parson’s Puzzles to help students engage with a concept without writing code or experiencing frustrating syntax errors.