Avec l’augmentation de la capacité des ordinateurs et de la qualité des algorithmes, l’informatique prend une place de plus en plus importante dans la vie de tous les jours, mais aussi dans la recherche. Cela est rendu aussi possible grâce à la programmation et aux améliorations des languages, des outils et des pratiques. Les développeurs sont devenus plus productifs.
Mais l’impact sur les scientifiques est plus mitigé. En effet, la production de nouveaux résultats est ralentie par le temps nécessaire pour écrire, tester, débugger, installer et maintenir des logiciels. Et la plupart des scientifiques n’ont jamais appris comment faire cela efficacement. Ils peuvent avoir suivi des cours généraux d’introduction à la programmation ou aux statistiques. Mais ils n’ont que rarement entendu parler de gestionnaire de version, ou comment transformer les dernières commandes exécutées en un script réutilisable. Ils passent ainsi des heures à faire des choses qui peuvent être faites en quelques minutes, avec une reproductibilité quasi-nulle. Ou pire, ils ne le font pas car ils ne savent pas par où commencer.
Vous vous retrouvez dans cette description, et vous voulez changer vos pratiques pour faciliter et améliorer votre recherche ? Vous travaillez avec des scientifiques dans ce cas là et qui veulent changer ? Software Carpentry pourrait vous aider.
Software Carpentry
Software Carpentry est une organisation bénévole fondée en 1998. Son but est de rendre les scientifiques plus productifs et d'améliorer la reproductibilité de leur travail en leur apprenant des compétences basiques en programmation, comme :
- Les bases de la programmation structurée en
1Python1R
- Le contrôle de version avec
1<a href="https://bioinfo-fr.net/git-premiers-pas">git</a>
- L’automatisation de tâches avec
1Unix shell
Le contenu des cours est orienté vers les chercheurs avec une pédagogie adaptée et vraiment réfléchie. Le but est donc de promouvoir l’autonomisation mais aussi la reproductibilité en recherche, en leur faisant adopter des techniques et des outils standards dans l’industrie du logiciel.
Ces cours sont gérés selon le principe de l’open access. Ils sont donc libres et consultables par n’importe qui. Mais, la base de l’enseignement repose sur l’organisation de workshops courts et intensifs, animés par des formateurs “assermentés” bénévoles, partout dans le monde. Tout laboratoire ou université peut organiser un workshop.
A quoi ressemble un workshop "standard" sur deux jours ?
- Matin du premier jour :
1Unix shell1pipes
- Après-midi du premier jour : programmation en
1Python1R
- Matin du second jour : gestionnaire de version comme
1git
- Après-midi du second jour : approfondissement du langage de programmation ou introduction aux bases de données et à
1SQL
Les workshops sont basés sur la pratique par les élèves pour faire passer des concepts plus larges, malgré des temps réduits. Le succès des workshops vient aussi de plusieurs techniques mises en place : boucle de réactions (en temps réel pendant le workshop, mais aussi avant et après), live-coding, ouverture sur tout (succès, échec, contenu des cours, …), développement collaboratif des cours, utilisation quotidienne par les formateurs de ce qui est enseigné, prise de note collaborative, programmation par paire,…
Trouvant la philosophie intéressante, j’ai voulu organiser un workshop au sein de mon laboratoire (à Clermont-Ferrand), de préférence en français. J’ai donc regardé quels étaient les formateurs “assermentés” possibles. Ils sont nombreux aux États Unis, au Canada et en Angleterre. Mais en France (il y a un an), il n'y en avait que 3 : 2 à Paris et 1 à Lyon, compliquant l’organisation d’un workshop dans mon laboratoire. Devant le manque de formateurs sur le territoire français. j’ai alors voulu rejoindre cette organisation.
Devenir formateur
En juin dernier, je me suis donc inscrite. La formation a démarré en octobre, pour 12 semaines. Elle ne portait pas tant sur le contenu des workshops. C’est plutôt une introduction à la recherche moderne pour l’éducation et les pratiques d’enseignement.
Comment s’est déroulée la formation ?
Durant 12 semaines, j’avais une heure de cours à suivre chaque semaine et ensuite des “devoirs” à réaliser pour la semaine suivante. Les cours étaient en anglais et se faisaient à distance. Etherpad était utilisé pour la prise de notes collaboratives et pour poser des questions au formateur. Les devoirs étaient soumis via Piazza. Et pour favoriser les échanges et avoir des visions différentes, les devoirs étaient commentés par tous. Certains devoirs reposaient aussi sur des simulations de cours avec du live-coding à distance (via Hangout). Cet exercice, particulièrement difficile, est très formateur.
L’obtention de la certification (un des buts de la formation) passait par une phase d’évaluation. D’abord, par les devoirs, pas directement (pas de notes), mais par la régularité et le sérieux. L’évaluation principale reposait sur la préparation d’une des leçons (3h) proposées par Software Carpentry dans les workshops, la proposition d’un exercice pour cette leçon et la restitution (en anglais) de 5 minutes de cette leçon devant un formateur expérimenté. Avec un peu de préparation, ce n’était pas si compliqué. L’évaluation ne donne pas lieu à notation mais sert surtout à estimer si la philosophie de Software Carpentry et de l’enseignement est assimilée.
Ainsi, la formation m’a initiée aux bases de la psychologie de l’éducation, à la conception de contenu éducatif (QCM, concept map, …) et l'application à l'enseignement la programmation. Des choses essentielles pour toute personne vouée à enseigner l’informatique, mais qui ne sont pas transmises aux nouveaux enseignants. Ca a été aussi l’occasion de m’initier à des outils comme les notebooks Jupyter, la prise de notes collaborative avec Etherpad, …
J’ai ainsi obtenu la certification. Je fais maintenant parti des quelques formateurs français.
Pour l’instant, je n’ai pas eu l’occasion de participer à un workshop. Mais j’ai pu appliquer et vérifier l'impact des concepts et des outils acquis durant la formation. En effet, j'enseigne depuis deux ans (donc avant et après la formation) à l'IUT de bioinformatique d’Aurillac. Cette année, j'ai mis en place des cours QCM régulièrement pendant les cours (comme recommandé). Ces QCM permettent de maintenir l'attention des étudiants, de les amener à réfléchir d'avantage sur le contenu du cours mais aussi de vérifier en temps réel l'acquisition des notions abordées. J'ai aussi mis en place du live-coding, en me basant sur des notebooks Jupyter. Les retours des étudiants ont été globalement positifs et j'ai pris beaucoup plus de plaisir que l'année précédente à enseigner.
Conclusion
Software Carpentry est un programme (très intéressant) pour apprendre aux chercheurs du monde entier les compétences techniques nécessaires pour améliorer leur travail et leur permettre de faire plus en moins de temps et plus facilement.
Apprendre à devenir formateur pour l'association Software Carpentry a été pour moi une expérience très intéressante et enrichissante. Je ne peux que vous encourager à la suivre à votre tour. Pourquoi ?
- Pour optimiser le travail des scientifiques en leur transmettant de bonnes pratiques d'usage de l'informatique
- Pour améliorer votre réseau (pendant les workshops)
- Pour apprendre de nouvelles choses, surtout en pédagogie
- Pour enseigner et devenir un super enseignant
- Pour favoriser la diversité et l'origine des formateurs
- Pour le fun
Pour ceux que ne se sentent pas l’âme d’enseigner, améliorez le monde de la recherche et la vie de vos collaborateurs/coworkers : organisez des workshops Software Carpentry !
Je remercie Fabrice, Estel et Bunny pour la relecture et leurs commentaires
[1] Wilson G. Software Carpentry : lessons learned. F1000Research 2016, 3:62 (doi : 10.12688/f1000research.3–62.v2)
Laisser un commentaire