Des concepts algorithmiques et de programmation via les Algoblobs

Algoblob

projet initié par Laurent Cooper

Constats de départ

  • Les élèves en NSI ont un niveau extrèmement hétérogène. En particulier, en terminale, les effets du confinement en France ont creusé des écarts de niveau en les rendant parfois intense. Il y a donc un besoin d’individualisation des parcours
  • Lorsqu’une activité est ludique, les élèves s’y investissent plus volontiers. Ils sont capables de passer de long moment pour résoudre un problème.
  • Lorsqu’une activité repose sur une histoire, surtout si celle ci marque un peu les esprits, le contexte aide à retenir ce qui est appris
  • Lorsque les activités s’enchainent de façon cohérente, les élèves les poursuivent volontiers d’une fois sur l’autre et leur investissement est présent
  • Le graphisme de façon générale et l’animation en particulier sont deux éléments qui motivent les élèves dans le travail informatique

Objectif du projet

Réaliser un ensemble d’activité, sous le nom “d’épopée des Algoblobs” qui puisse servir de fil rouge à une année de NSI. L’objectif est d’arriver à introduire les différentes notions comme une nécessité ou un outil efficace pour résoudre un problème.

On peut présenter les files comme des structures abstraites informatiques,ou l’on peut commencer par présenter un problème graphique (des “algoblobs” qui naissent et meurent, dans l’ordre d’apparition) qui se résoud avec une pile et ensuite théoriser cette notion de pile

Dans l’idéal, le projet comprendrait 3 volets :

  • activités ludiques et fil rouge graphique
  • cours théorique rigoureux
  • exercices variés sur le sujet

Ce fil rouge fait presque office de projet à lui tout seul au cours de l’année

Un peu plus en détail

Les algoblobs ? Ce sont juste des cercles qui se déplacent sur un canvas graphique. Mais ils sont présentés par “le professeur CHOM” comme des créatures algorithmiques qui sont à la frontière entre le code et la vie… Toute une mythologie et un univers les accompagne. Ces cercles peuvent bouger, se réunir, s’éloigner, avoir des variations de taille, de couleur, etc. Toutes ces variations sont scénarisées pour aboutir à faire émerger une notion algorithmique.

Par exemple la pile… les algoblobs doivent traverser une zone 1 par 1 pour ne pas déclencher une alarme. Ils le font de gauche à droite puis de droite à gauche, etc. Les  derniers arrivés seront bien évidemment les premiers partis. On a donc nativement une structure de pile qui va émerger.

Il faut entremêler la scénarisation, son aspect ludique, les apports théoriques qui deviennent naturels. Les objets apparaissent assez tôt pour avoir un code propre par exemple.

Outils du projet

  • la bibliothèque p5 en version python https://github.com/p5py/p5 (qui utilise la libglfw, qu’il faut installer sur ordinateur)
  • le site web peut, grâce à skulpt, utiliser des éditeurs python en ligne. C’est mis en oeuvre en utilisant pythonexec  (https://github.com/swirly/pythonexec.js) que j’ai conçu pour faciliter la rédaction de cours python en ligne
  • skulpt ne permet pas encore d’intégrer p5, mais un travail pour transpiler p5py vers p5.js est en cours et s’annonce prometteur (voir en bas de l’issue github sur le sujet : https://github.com/skulpt/skulpt/issues/695#issuecomment-712577163 ). Ce qui est génial, c’est que ce travail achevé permettrait que la totalité du cours se fasse dans le navigateur sans rien installer en local !
  • côté construction des pages web, c’est du php7 avec la bibliothèque twig (https://twig.symfony.com/) (utilisée par le projet symfony) comme bibliothèque de templates

le travail a déjà commencé et l’état actuel est visible par un index :

https://algoblob.educinfo.org/index.php?page=index

NB : il n’y a pas de navigation entre les pages car je les utilise à partir d’un moodle et les élèves doivent repasser par moodle pour avoir la suite. L’index dans ce contexte n’est pas accessible.

L’ensemble du travail sera accessible sous peu sur github (lien à venir sous peu) pour permettre un travail de groupe sur le code

Comment participer/contribuer au projet ?

De multiples façons

  • toutes les personnes qui pourront valider/invalider la démarche sur un plan pédagogique et didactique seront les bienvenues
  • toutes les personnes qui débordent d’idée pour scénariser sont les bienvenues
  • les graphistes voire les maitres de l’animation permettraient de donner une dimension bienvenue à ces histoires !
  • si des experts javascript veulent se pencher sur l’intégration de p5py dans le transpilage de skulpt, c’est génial
  • Si des personnes veulent travailler sur la partie cours/exercices de façon formelle, ils sont les bienvenus

Bref, l’idée est de fédérer autour d’un fil rouge.

Une citation pour finir ?

Les algoblobs sont plus qu’un simple concept informatique mais moins qu’une forme de vie. Ils sont quelque chose d’hybride , à la frontière du code et du vivant.

in L’épopée des algoblobs par le professeur CHOM

Fil de discussion : Fil de discussion

Pad de travail collégial : Pad de travail collégial