
Au départ, Questions Flash DNB n’était pas vraiment un « logiciel ». C’était une page de site, construite progressivement pour répondre à un besoin très concret : proposer aux élèves des entraînements courts, renouvelables et proches du format des automatismes du brevet.
Puis l’outil a grandi. Les questions se sont multipliées, l’impression d’une fiche avec corrigé est apparue, le barème s’est affiné et les petits cas particuliers se sont accumulés. Il devenait utile en classe, mais restait intimement lié à l’architecture de site2wouf.fr.
J’ai donc entrepris un travail moins spectaculaire qu’une nouvelle fonctionnalité, mais sans doute plus important à long terme : extraire l’outil, le nettoyer, le documenter et en faire un logiciel libre autonome.
Un outil utile, mais encore prisonnier de son site
Lorsqu’une application est développée directement à l’intérieur d’un site ancien, elle récupère naturellement une partie de son environnement : fichiers communs, feuilles de style, chemins spécifiques, habitudes de programmation et parfois quelques dépendances devenues invisibles avec le temps.
Tout fonctionne sur le serveur d’origine, mais la question devient rapidement embarrassante :
Une autre personne pourrait-elle installer cet outil sans devoir reconstituer toute l’histoire de mon site ?
Dans le cas de Questions Flash DNB, la réponse était initialement : pas facilement.
Le code était accessible, mais il n’était pas encore réellement réutilisable. Or publier du logiciel libre ne consiste pas seulement à déposer quelques fichiers sur Internet. Encore faut-il que quelqu’un puisse comprendre leur organisation, identifier le point d’entrée, configurer l’application et la faire fonctionner sans disposer de mon serveur.
Rendre autonome avant de rendre public
La première étape a donc consisté à détacher le générateur de son environnement historique.
La version autonome fonctionne avec PHP 8 et ne nécessite :
- ni base de données ;
- ni compte utilisateur ;
- ni clé d’API ;
- ni bibliothèque tierce ;
- ni service extérieur indispensable.
Un serveur PHP classique suffit. Pour un essai local, quelques commandes permettent de lancer immédiatement l’application :
git clone https://github.com/w0uf/questions-flash-dnb.git
cd questions-flash-dnb
php -S localhost:8000
Les paramètres propres à une installation ont été regroupés dans un fichier de configuration. L’habillage visuel est séparé du fonctionnement, chaque automatisme possède son propre générateur et le dépôt contient désormais une documentation, des captures d’écran, un historique des versions et des instructions d’installation.
Ce travail ne change presque rien pour l’élève qui utilise la version en ligne. Pour une personne souhaitant lire, installer ou modifier le programme, il change tout.
Derrière le bouton, le hasard doit être gouverné
L’application propose aujourd’hui 44 automatismes, répartis entre cinq grands domaines :
- nombres et calculs ;
- espace et géométrie ;
- probabilités et statistiques ;
- proportionnalité et fonctions ;
- algorithmique et programmation.
L’utilisateur peut lancer une session interactive de neuf questions en vingt minutes, sans calculatrice, ou produire une fiche imprimable accompagnée de son corrigé.
Présenté ainsi, le principe paraît simple : choisir quelques modèles de questions, tirer des nombres au hasard et afficher le résultat. En pratique, générer au hasard ne suffit pas.
Une question doit rester mathématiquement correcte, adaptée au format choisi et raisonnablement lisible. Les valeurs tirées ne doivent pas provoquer une division impossible, produire deux réponses identiques dans un QCM ou rendre une figure incohérente. Une série statistique doit posséder la médiane attendue. Les distracteurs doivent être faux, mais plausibles. Les fractions doivent parfois être irréductibles. Les données géométriques doivent permettre le calcul demandé.
Le barème lui-même ne peut pas être totalement aveugle. Une question ouverte ne présente pas la même probabilité de réussite au hasard qu’un vrai-faux. Dans la version actuelle, les questions les plus fortement valorisées sont donc attribuées en priorité aux réponses ouvertes, puis aux automatismes considérés comme les plus exigeants.
Le hasard produit de la variété. Les contraintes pédagogiques lui donnent du sens.
C’est probablement cette partie du projet qui m’intéresse le plus : transformer une intention pédagogique en règles suffisamment précises pour qu’une machine puisse générer des milliers de questions différentes sans perdre la cohérence attendue.
Choisir une licence, donc accepter la réutilisation
Le code source est publié sous licence GNU Affero General Public License v3. Il peut être consulté, étudié, installé et modifié dans le cadre fixé par cette licence.
Les contenus pédagogiques sont, de leur côté, proposés sous licence Creative Commons BY-SA. Cette distinction entre le programme et les ressources qu’il produit permet de préciser plus clairement ce qui peut être repris et adapté.
Ce choix n’est pas seulement juridique. Il traduit une idée assez simple : une ressource créée dans le cadre de ma pratique d’enseignant peut continuer à vivre ailleurs que sur mon propre site.
Un collègue peut vouloir modifier l’apparence de la fiche, retirer certains automatismes, en ajouter d’autres ou installer l’outil sur un serveur interne. Il n’a pas à me demander l’autorisation pour commencer à expérimenter.
Donner plusieurs adresses à un même projet
Une fois le programme rendu autonome, il restait à lui donner une existence qui ne dépende plus d’une seule page web.
GitHub : le dépôt de travail
Le dépôt GitHub de Questions Flash DNB regroupe le code, les instructions d’installation, les captures d’écran, les changements apportés à chaque version et les informations de citation.
C’est également l’endroit le plus simple pour signaler un problème, proposer une amélioration ou examiner précisément le fonctionnement d’un automatisme.
La Forge des communs numériques éducatifs
Le projet a aussi été publié sur la Forge des communs numériques éducatifs.
Cette présence n’apporte pas une fonctionnalité supplémentaire à l’application. Elle replace cependant le projet dans un écosystème consacré aux outils et aux ressources numériques produits ou partagés par la communauté éducative.
Zenodo : une version archivée et citable
La version publiée a été déposée sur Zenodo et possède désormais un identifiant pérenne :
DOI : 10.5281/zenodo.21810165
Un dépôt de code évolue continuellement. Un DOI permet au contraire de désigner précisément une version archivée du logiciel et de la citer dans un article, une documentation ou un travail de recherche.
Software Heritage : préserver l’histoire du code
Le dépôt a également été confié à Software Heritage, dont la mission est de collecter et de préserver le code source disponible publiquement.
Zenodo conserve une publication identifiée du logiciel. Software Heritage s’intéresse davantage à l’histoire du code et de ses différentes révisions. Les deux démarches sont donc complémentaires.
OER Commons : reconnaître la ressource pédagogique
Enfin, Questions Flash DNB possède maintenant une fiche dans OER Commons, une bibliothèque internationale de ressources éducatives ouvertes.
Cette dernière étape change légèrement le regard porté sur le projet. Questions Flash DNB n’est pas seulement un programme PHP disponible sur un dépôt : c’est aussi une ressource pédagogique utilisable en classe, pour la révision, l’évaluation formative ou le travail autonome.
Ce que l’ouverture change… et ce qu’elle ne change pas
Publier le code ne garantit évidemment ni sa qualité définitive ni son succès.
Une licence libre ne fait pas apparaître magiquement une communauté de contributeurs. Un DOI ne transforme pas un outil pédagogique en référence scientifique. Une présence dans plusieurs catalogues ne dispense pas de continuer à corriger les erreurs et à interroger les choix didactiques.
L’ouverture produit néanmoins un changement important : les choix deviennent observables et discutables.
Il est désormais possible de voir comment sont générées les valeurs, comment sont construits les distracteurs, comment les questions sont sélectionnées et comment les points sont distribués. Une erreur peut être précisément localisée. Une amélioration peut être proposée autrement que par un vague « ce serait bien si… ».
Cette transparence impose aussi une certaine humilité. Mettre le code à disposition, c’est accepter qu’une autre personne trouve une maladresse, une incohérence ou une solution plus simple.
Tester, signaler, adapter
La version en ligne de Questions Flash DNB reste librement accessible, sans inscription.
Les collègues peuvent l’utiliser pour :
- projeter une courte séance d’entraînement ;
- préparer une fiche ciblée sur quelques automatismes ;
- organiser une réactivation avant le DNB ;
- faire travailler les élèves en autonomie ;
- observer le code et construire leur propre variante.
Les retours sont les bienvenus, qu’il s’agisse d’une erreur mathématique, d’une formulation ambiguë, d’un problème d’affichage ou d’une idée d’automatisme supplémentaire.
Un logiciel pédagogique libre n’est jamais tout à fait terminé : il devient simplement assez ouvert pour que son amélioration ne dépende plus d’une seule personne.
Cette mise en liberté ne marque donc pas la fin du projet. Elle constitue plutôt un nouveau point de départ.
Accéder au projet
- Utiliser l’application : Questions Flash DNB sur site2wouf.fr
- Consulter le code : dépôt GitHub
- Accéder à la Forge : Forge des communs numériques éducatifs
- Citer la version archivée : Zenodo — DOI 10.5281/zenodo.21810165
- Consulter la fiche pédagogique : OER Commons