C Anonymisation des données

Les informations enregistrées via {learnitdown} dans des bases de données MongoDB servent à évaluer la progression des étudiants dans leur apprentissage, et à les noter à la fin du cours. Ces données peuvent également se révéler précieuses pour la recherche en pédagogie car elle contiennent des indices intéressants pour déterminer ce qui fonctionne bien ou moins bien. Cependant, les données contiennent des informations à caractère personnel, ce qui en limite le champ d’utilisation (en respect du RGPD en Europe, par exemple). Une diffusion de ces données à des fins de recherche en pédagogie n’est possible qu’après élimination des informations à caractère personnel, c’est-à-dire, après avoir anonymisé les données.

Pour que les données restent utiles, il faut toutefois continuer à attribuer les données à différents individus anonymes distincts. Ainsi, chaque donnée doit être attribuée à un pseudonyme type “student1”, “student2”, …, “studentN” de manière consistante à travers tout le jeu de données. Cela ne pose pas de problèmes particuliers pour les données des exercices H5P/Shiny/learnr dans la base de données MongoDB. Il suffit de remplacer les logins des étudiants pour les pseudonymes choisis à l’aide d’une table de conversion (TODO: faire une fonction dans {learnitdown} pour cela et montrer ici un exemple de code). Par contre, c’est nettement plus compliqué en ce qui concerne les dépôts GitHub. Des outils existent pour anonymiser partiellement ou totalement des dépôts GitHub, mais ils ne sont pas faciles à mettre en œuvre ou présentent des limitations. TODO: il faudra ici trouver une solution qui convienne à notre cas particulier, par exemple : https://docs.github.com/en/github/using-git/changing-author-info, qui peut déjà être utile pour réattribuer des commits à un étudiant s’il a entré une mauvaise identité. Et un plugin git utilise cette approche pour complètement anonymiser un dépôt Git tout entier : https://github.com/cvortmann/git-anonymize. Malheureusement, si je comprend bien, tout le monde est modifié en “anonymous”, or il faudrait mettre “student1”, “student2”, etc., comme dans la base de données H5P/learnr/shiny. Un beau projet pour un étudiant en informatique, peut-être ?

Enfin, concernant les fils de discussion sur Discord, il est assez facile de les copier dans des documents Word, de les exporter dans un autre format (Markdown ?), et puis des les anonymiser à l’aide de code écrit en R. Faire attention ici aux copies d’écrans que les étudiants joignent parfois à leurs posts et qui peuvent contenir des informations personnelles !