Programmer avec Citizen Code Python - des blocs au texte publié le 09/10/2023

Apprentissage et remédiation en algorithmique et programmation

Citizen Code Python est une ressource gratuite et conforme aux normes RGPD, développée par l’association France IOI et l’entreprise de l’économie sociale et solidaire Tralalere. Elle est mécénée par le programme Future Engineer d’Amazon.

Présentation de la ressource

Citizen Code Python est une application en ligne qui vise le développement des compétences en algorithmique et programmation. Elle s’appuie sur des missions, défis à relever par l’utilisateur, rassemblées en épisodes, eux mêmes organisés en saisons. Chaque épisode correspond à une partie des programmes scolaires, notamment ceux de mathématiques, du collège au lycée.

CTZCP - Saisons

Chaque épisode dispose d’une vignette présentant son titre, l’objet d’apprentissage, une description, le niveau de difficulté général, etc. L’épisode est ainsi constitué de plusieurs missions, de difficultés progressives mais que l’on peut parcourir librement. Les missions peuvent être réalisées, successivement ou exclusivement, en programmation par blocs (Blockly, similaire à Scratch) ou textuelle (Python). Nous verrons plus bas que cela multiplie les usages possibles et les opportunités d’apprentissage.

Les premières missions d’un épisodes sont très étayées et permettent à l’élève de mieux comprendre à la fois la consigne, les attentes et le vocabulaire (commandes textuelles ou par bloc) à utiliser. Les missions sont labellisées "Découverte", "Validation" ou "Challenge" selon le degré d’étayage et/ou de difficulté.

Que l’on programme en Python ou en Blockly, l’effet de la programmation est proposé dans la fenêtre de gauche. On peut ainsi utiliser le déboggage, dans une démarche "essai-erreur" propre à ce type d’activités. Il est ainsi possible de "lire" l’ensemble du programme pour tenter de valider la mission mais aussi de fonctionner en mode "pas-à-pas" afin d’observer l’effet de chaque instruction et d’identifier le cas échéant l’erreur à corriger.

Action

Le mode classe

D’après les éditeurs, la ressource sera très bientôt connectée au GAR (Gestionnaire d’Accès aux Ressources) ce qui permettra non seulement de l’avoir à disposition dans les ENT collèges ou lycées (sur demande) mais aussi d’inscrire plus rapidement les classes.
En attendant, il est possible d’inscrire ses élèves un à un et de les associer à une classe donnée. On peut sans souci choisir un mot de passe simple pour tous ses élèves qui seront alors invités à le changer à leur première connexion.

mode classe 1

Une fiche synthétique est proposée aux enseignants pour aider à réaliser cette étape d’inscription de classe.

Une fois la classe complète, l’enseignant peut parcourir les épisodes des différentes saisons afin d’assigner à la classe (ou un groupe d’élèves seulement), l’ensemble d’un épisode ou seulement les missions de son choix.

fontions_-_assigner
Sélectionner missions

. L’enseignant possède aussi une console de suivi des affectations et des résultats de tous ses élèves.

Intérêts pédagogiques identifiés

  • Apprentissages ludifiés. Les élèves doivent relever des défis sous la forme de missions. Comme dans un jeu vidéo1, l’utilisateur est d’abord pris par la main et mis dans un contexte de réussite qui génère une motivation extrinsèque (attractivité de l’environnement visuel, du défi...) puis intrinsèque (confiance dans la capacité à réaliser la tâche demandée, sentiment de compétence...).
  • Différenciation. Si l’on peut recommander de faire fonctionner la ressource en classe par groupe de deux élèves (notion de pair programming2), il n’en reste pas moins que le feedback immédiat proposé par la ressource permet aux élèves d’être dans une relative autonomie. Cela permet à différents rythmes de cohabiter dans la classe, l’enseignant pouvant à la fois aider les binômes les plus en difficulté ET encourager les autres à s’engager dans des défis pertinent pour leur niveau (ou leur Zone Proximale de Développement3).
  • Continuum collège-lycée. Un des défis majeurs de l’enseignement de l’algorithmique et de la programmation en Mathématiques réside dans la transition entre l’utilisation d’un langage par blocs comme Scratch ou Blockly attendue au collège et celle d’un langage textuel comme Python attendue au lycée. Les TraAMs 2017-18 de notre académie s’étaient déjà penchés sur la question à l’époque. Dans Citizen Code Python, chaque défi peut être relevé en Blockly ou en Python. Cela multiplie à la fois les opportunités pour les élèves de collège de se sensibiliser au langage Python sur des défis réussis en "mode Blockly" et la possibilité pour des élèves de lycée de repasser par un langage familier pour se concentrer sur le raisonnement algorithmique sans bloquer nécessairement sur la syntaxe de Python. Bien entendu, ce double mode ne correspond qu’à des états transitoires dans l’apprentissage mais pourrait notamment limiter la sensation que peuvent parfois éprouver les nouveaux élèves de secondes de devoir "oublier" tout ce qu’ils ont appris sur Scratch pour apprendre le langage Python, l’abstraction sur les objets algorithmiques sous-jacents n’étant pas toujours explicite et/ou assimilée.

(2) Sophie Chane-Lune, Christophe Declercq, Sébastien Hoarau. Expérimentation du pair-programming en spécialité NSI en classe de première pour l’acquisition de compétences en programmation. Atelier“ Apprendre la Pensée Informatique de la Maternelle à l’Université ”, dans le cadre de la conférence Environnements Informatiques pour l’Apprentissage Humain (EIAH), 2023, Brest, France. pp.25-32. ffhal-04144211 https://hal.science/hal-04144211/document