Programmer avec Citizen Code Python - des blocs au texte publié le 09/10/2023  - mis à jour le 24/06/2024

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 et accessible sur les ENT académiques via le GAR depuis le 13 juin 2024.

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

La ressource est connectée au GAR (Gestionnaire d’Accès aux Ressources) depuis le 13 juin 2024. Ainsi, il est possible de l’avoir à disposition dans votre ENT collège ou lycée (demande à formuler via votre RUPN). Vous pouvez ainsi récupérer automatiquement vos classes et vos élèves.

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.

Compétences travaillées

  • Compétences disciplinaires :
    • Programmer dans un langage par bloc
    • Programmer dans un langage textuel
    • Résoudre un problème en mobilisant les notions algorithmiques adéquates : séquence d’instructions, instruction conditionnelle, boucles,...
  • Compétences du CRCN mises en œuvre par les élèves :
    • Communication et collaboration
      • Interagir
      • Collaborer
    • Environnement numérique
      • Évoluer dans un environnement numérique
  • Compétences du CRCN-Edu mises en œuvre par l’enseignant :
    • Environnement professionnel
      • Se former, développer une veille
      • Adopter une posture ouverte, critique et réflexive
    • Ressources numériques
      • Sélectionner des ressources
    • Enseignement - Apprentissage
    • Diversité et autonomie des apprenants
      • Inclure et rendre accessible
      • Différencier
      • Engager les apprenants
    • Compétences numériques des apprenants
      • Développer les compétences numériques des apprenants

(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