Projet:ENS Rennes algorithmique 2021
Les élèves du département informatique (et maths !) de l'ENS Rennes s'unissent pour améliorer certains articles Wikipédia relatifs à l'algorithmique, pour le cours ALGO2 au printemps 2021.
Projet supervisé par Lilian Besson et François Schwarzentruber.
Calendrier
- janvier : discussion entre vous, choix d'un binôme ;
- début février : lisez ces ressources pour apprendre à éditer Wikipédia :
- Aide : comment modifier une page Wikipédia ? ;
- Cette page WikiHow (externe) ;
- Si besoin : Aide:Débuter contient d'autres articles d'aide (comment créer une page, comment créer un compte etc) ;
- Cette vidéo si besoin (et pour les plus curieux-ses de l'historique du projet, voici un bon reportage de ARTE).
- début février : première séance en classe (mardi 02/02/21), via Discord. A faire maintenant : discussion pour choisir un sujet (à valider par l'équipe enseignante) ;
- février-mars : projet première partie ;
- avril : deuxième séance en classe (mardi 06/04/21), via Discord ;
- avril : projet deuxième partie ;
- fin du semestre : fin du projet, évaluation par Lilian Besson.
Prérequis et tutoriels
Nous ne supposons pas que vous soyez déjà familiers avec l'édition et la conception de pages Wikipédia, mais familiers avec l'utilisation de Wikipédia pour vos études ou votre culture générale.
- Si vous ne connaissez vraiment pas Wikipédia, lisez au moins cette page Wikipédia:Accueil_principal et Wikipédia, et cliquez une fois sur "Modifier le code" en haut à droite, pour voir le code source, écrit en format de langage à balise MediaWiki, (cette page si vous connaissez déjà Markdown ou d'autres mais pas MediaWiki).
- Ensuite, regardez un peu Aide:Débuter. Vous pouvez essayer d'écrire un peu de MediaWiki dans le bac à sable.
- Nous insistons sur les règles principales de l'encyclopédie :
- il faut citer vos sources, comme dans un article de recherche. Il faut préférer des livres, ou articles de recherches, à des postes de blogues. A défaut, des ressources d'enseignant-e-s sont possibles ;
- neutralité et proportion ;
- et aussi l'interdiction du travail inédit : surtout pour un tel (petit) projet on ne vous demande pas de découvrir de nouveaux algorithmes, de trouver des nouvelles preuves etc. Mais produire une nouvelle illustration, traduire une preuve déjà présente sur Wikipédia en anglais, trouver une preuve ou un exemple supplémentaire dans un livre, ce sont des bonnes pistes.
Attendu du projet
En amont : il faudra lire une ou des sources (livres, articles de recherche). Voici quelques idées de tâches à réaliser :
- Écrire des explications d'un ou de plusieurs algorithmes, et/ou un pseudo-code.
- Écrire une démonstration pertinente.
- Créer des illustrations et des animations. Pour cela, implémenter des algorithmes qui génèrent les illustrations
- Citer des sources aux pages (livres, articles de recherche). Évitez les pages de cours pour les sources, sauf cas particulier, mais elles peuvent vous aider en amont (beaucoup citent des livres !).
Toutes ces tâches demandent d'éditer une (ou plusieurs) page(s) Wikipédia, en français. D'autres tâches (bonus) peuvent être :
- Créer une vidéo courte qui présente l'algorithme, votre implémentation, vos contributions sur Wikipédia, et la diffuser en ligne si vous avez envie (YouTube ou autre). Le format à suivre peut être [la vidéo de François Schwarzentruber sur l'algorithme du Simplexe] ;
- Ajouter vos modifications (notamment les figures) à des pages en anglais, ou dans d'autres langues que vous maîtrisez (vous pouvez collaborer avec d'autres binômes pour traduire en espagnol, allemand, tamoul, italien, etc).
Idées de sujets
- Algorithmes étudiés en cours d'ALGO1 insuffisamment illustrés sur Wikipédia ;
- Algorithme sur les flots, ou les couplages max ;
- Tas de Fibonacci ;
- Structures de données probabilistes : filtres de Bloom, skip list, etc ;
- Algorithmique géométrique : calcul d'enveloppe convexe, deux points les plus proches, quadtree etc ;
- Repliement d'ARN (protein folding) ;
- Algorithmes utilisés dans la société française : calcul des impôts, des retraites, ParcourSup, affectations des professeurs du secondaire, etc. ;
- Traduction (anglais > français ou autre) de pages d'algorithmiques ;
- Algorithmes d'apprentissage statistique (supervisé, non supervisé, par renforcement) ;
- Algorithmique quantique ;
- Problèmes NP-complets (avec leur réduction) listés par exemple dans cette liste de problèmes, en regardant ceux qui n'ont pas (encore) de pages Wikipédia en français.
Mais nous refuserons les idées sur les pages trop génériques comme Algorithmique ou théorie de la complexité, ou sur des principes d'algorithmique (par exemple programmation dynamique, diviser pour régner, etc).
Autres idées :
- Idée pour ceux et celles plus intéressé-e-s par l'enseignement : regardez les programmes d'enseignements d'informatique, du ISN en seconde, NSI en première et terminale au lycée, au programme d'informatique (option D) à l'agrégation de mathématiques, en passant par les programmes d'option info en MPSI/MP, d'info tronc commun en prépa scientifiques, et d'info en prépa MPII/MPI. Les algorithmes évoqués doivent tous avoir une page Wikipédia, qui peut évidemment être améliorée, complétée, etc. Si un algorithme ou un point d'un programme n'est pas présent, créez la page Wikipédia et remplissez !
- Autre idée : empruntez un livre d'algorithmique, par exemple [Programmation Efficace : 128 algorithmes qu'il faut avoir compris et codé dans sa vie en Python], et écrivez une page Wikipédia sur un des problèmes algorithmiques présentés, ainsi qu'une solution (si la page n'existe pas déjà, et si elle existe en anglais, traduisez la et améliorez les deux !).
Conseils pour bien réussir le projet
- Respectez les dates successives ! Ne vous y prenez pas au dernier moment !
- Avant de créer une page Wikipédia, créez un compte (pour votre binôme ou seul-e), et demandez aux profs de valider votre choix ;
- Avant d'écrire à partir de rien une page en français, vérifiez qu'il n'existe pas déjà une page anglaise (ou allemande, ou espagnole, ou dans une langue que vous maîtrisez) ;
- Gardez une trace de vos contributions, dans un document annexe (au cas où votre modification échoue ou se fait annuler) ;
- Travaillez vraiment en binôme !
- Tenez informés les profs de vos (grandes) étapes de travail, qu'elles soient positives (sujet trouvé, référence intéressante étudiée, code avancé, figure réussie, etc) ou négatives (pas de référence, difficulté d'implémentation, figure peu claire, etc). Par Discord, par messages publics dans #projet-wikipédia : de toutes façons, vos modifications dans Wikipédia sont toutes publiques !
Qui fait quoi ?
A vous d'éditer cette partie, écrivez une liste sous le format suivant :
- Morand Clément (Blubrom) & Houdaille Philémon (Menshir) : Traduction de la page sur Circuit-SAT - OK validé par Lilian
- Leothaud Dylan & Sourisseau Manon : Sujet : algorithme de Bron-Kerbosch - OK validé par Lilian
- Degioanni Théo & Rodet Matthieu : Traduction et extension de la page sur l'algorithme de Chandy-Lamport (Algorithmie distribuée) - OK validé par Lilian
- Martayan Igor & Correnson Arthur : filtre de Bloom, algorithme d'Ukkonen - OK validé par Lilian
- Arthur Dumas et Anima Libera (pseudo) sur Cycle rank - OK validé par Lilian
- Drakzia & Issemini : Traduction et extension de la page Algorithme de Ford-Fulkerson - OK validé par Lilian
- Charles D. & Etienne O. : Sujet : Algorithme NEAT
- Bartlett Gabriel & Courtillat--Piazza Ludmila : sujet blabla TODO
- Erlich Enzo : sujet blabla TODO
- Acher Quentin & Genoù Krampouezh : sujet blabla TODO
- Ziqian YIN & Liam IMADACHE & Brian FLANAGAN : blabla
- AriaNovella & VVS902 : programme d’enseignement informatique blabla
- Nom1/pseudo1 & Nom2/pseudo2 : sujet blabla sur ce truc là (puis lien vers la page https://fr.wikipedia.org/wiki/Page)
- (pseudos possibles si vous préférez l'anonymat, mais vous nous direz qui est qui, en privé)
Comme des bénévoles de Wikipédia nous l'ont suggéré, pour un suivi plus efficace, nous allons recenser ici les articles traités, comme ça les profs et des volontaires pourront ainsi les mettre dans leur liste de suivi.