Nouveau: deuxième TP en ligne !

Mogahan

Apprenez à coder en construisant votre propre moteur de recherche

aperçu

Vous êtes enseignant ? Demandez un compte enseignant pour recevoir automatiquement le travail de vos élèves.

Le projet

Mogahan est une plateforme pour découvrir la programmation informatique (avec le langage Python) depuis le tout début en construisant en moteur de recherche. Les élèves ont des résultats concrets dès le premier TP (un moteur de recherche basique mais fonctionnel), et à chaque nouveau TP les élèves améliorent ce qu'ils ont déjà construit.

Mogahan est plus qu'un projet qu'on construit le temps d'un TP et qu'on oublie ensuite : les élèves peuvent utiliser le moteur de recherche qu'ils ont construit pour leurs besoins personnels, et les professeurs peuvent aussi utiliser le moteur de recherche construit par leurs élèves pour leur cours !

Avec la possibilité d'aggréger les bases de données des moteurs de recherche de chaque élève, on peut vite arriver à un moteur de recherche assez pertinent sur un sujet suffisamment précis. Les élèves créent quelque chose dont ils peuvent immédiatement sentir l'utilité, et les professeurs peuvent être fiers de préparer leur cours en utilisant le moteur de recherche construit par leurs propres élèves.

Mogahan est aussi une formidable opportunité de travail interdisciplinaire où les élèves peuvent étudier en cours d'Histoire par exemple comment reconnaître une bonne ressource documentaire et comment l'indexer, pour ensuite les ajouter dans le moteur de recherche qu'ils auront eux-même construit.

Mogahan est un projet open source : voir le code source sur GitLab.com.

Vos retours sont les bienvenus ! Pour faire part de vos commentaires, suggestions, ou des bugs que vous avez trouvé, vous pouvez créer une nouvelle « issue » sur GitLab (requiert un compte ─gratuit─ sur GitLab.com) ou en envoyant un email à cette adresse.

Pour les enseignants

Envoyez un email à cedric.vanrompay@gmail.com pour demander la création de votre compte enseignant. Avec un compte enseignant, vous pouvez voir le travail de chacun de vos élèves, décider de publier le moteur de recherche de certains de vos élèves, et rassembler les bases de données produites par chacun de vos élèves pour obtenir le « moteur de recherche de la classe ».

TP n°1: un moteur de recherche en partant de zéro

commencer le TP numéro 1 indisponible sur mobile

Durée : 1h (la vidéo dure 45 min)

À la fin de ce TP, les élèves ont construit une fonction chercher qui prend en arguments le mot à chercher et qui renvoie une liste de documents contenant ce mot dans leurs mots-clés (chaque document a une adresse Web et une liste de mots-clés). Ils ont aussi créé la liste des documents (une liste de dictionnaires).

Les notions vues sont (dans l'ordre) : variable, liste et opérateur in pour les listes, fonction print, conditions avec if, construction d'une fonction, dictionnaires, et boucles for. Dès l'étape « construction d'une fonction », les élèves ont un moteur de recherche qui fonctionne sous forme d'un site Web « comme Google » plutôt qu'un programme qui fonctionne avec la ligne de commande.

Cela fait beaucoup de notions à découvrir dès le premier TP. Malheureusement, ça paraît inévitable pour avoir un résultat intéressant (un moteur de recherche qui fonctionne) en partant de zéro. Pour compenser, le TP est accompagné d'une vidéo sur la moitié de l'écran : il n'y a qu'à « faire pareil que dans la vidéo » pour que tout marche. Cela évite que les élèves les moins à l'aise se retrouvent bloqués. Les TP suivants seront de moins en moins guidés.

Le moteur de recherche a besoin de données pour être testé. Dans le TP on fourni deux documents que les élèves peuvent utiliser, chacun avec une adresse Web et une liste de mots-clés, mais en tant que professeur vous pouvez demander aux élèves d'aller chercher eux-même sur Internet deux documents qui leur paraissent intéressants. Idéalement, les deux documents devraient avoir au moins un mot-clé en commun et un mot-clé différent.

TP n°2 : index des mots-clés

commencer le TP numéro 2 indisponible sur mobile

Durée : 1h (la vidéo dure 25 min)

Dans ce TP on ajoute une fonction qui compte, pour chaque mot-clé, le nombre de documents associés à ce mot-clé dans la base de données.

On apprend à utiliser une double boucle for, à passer plusieurs arguments à la fonction print, à accéder aux éléments d'une liste (et que le premier élément d'une liste est l'élément zéro), à modifier les valeurs dans un dictionnaire, à comprendre ce que représente une erreur KeyError en Python, à utiliser in avec un dictionnaire, à tester si deux valeurs sont égales avec ==, et à utiliser else.

On apprend aussi plusieurs techniques pour être plus rapide pendant le développement: créer des variables dans la console pour faire comme si on était dans une fonction ou une boucle for, et ajouter des appels à print à des endroits clés du code source pour aider au débogage.

TP suivants

Les TP suivants sont encore en cours de développement. Ils devraient porter sur :