- rien à installer
- solutions vidéo pour les débutants
- un projet concret que vous pouvez utiliser pour vous-mêmes ensuite
- rassemblez votre travail avec celui des autres pour obtenir un moteur de recherche encore plus puissant !
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
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
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 :
- améliorer la présentation des résultats (titre des documents, résumé...)
- chercher si une adresse est déjà dans la base de données (avant de l'ajouter dans une base de données)
- accepter plusieurs mots-clés dans la recherche
- prendre en compte les fautes de frappe dans la recherche
- récupérer automatiquement le titre d'une page Web
- …et pouvoir améliorer son moteur de recherche comme bon nous semble