Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

Code Puzzle : Des puzzles de Parsons et des défis en Python
Article mis en ligne le 5 octobre 2023
dernière modification le 18 janvier 2024

par Benjamin Clerc

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 :

SESSION 2022 - Sujet n°20
Épreuve de NSI - Partie pratique
Exercice 2
Fichier Python à compléter par l’éléve

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) :

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 :