La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Graphe pour Python : Édition et navigation

Présentations similaires


Présentation au sujet: "Graphe pour Python : Édition et navigation"— Transcription de la présentation:

1 Graphe pour Python : Édition et navigation
Mahdi Miled – ENS Cachan – ENSIT (Tunis) 21 Février 2012

2 Journée apprentissage de la programmation
Introduction Multiplicité & développement des sources de contenus Web 2.0 : consommateurs -> contributeurs Abondance de ressources (num.) d’apprentissage 2 questions : Quels mécanismes d'aide à l'accès et à la navigation devant cette abondance? Comment faciliter les opérations de mise à jour et d'édition des contributeurs ? Avec la multiplicité et le développement des sources de contenus, les ressources numériques d’apprentissage sont devenues abondantes Le contexte du web 2.0 : les utilisateurs ne sont plus seulement consommateurs de ressources mais aussi contributeurs Quels mécanismes d'aide à l'accès et à la navigation devant cette abondance? Comment faciliter les opérations de mise à jour et d'édition des contributeurs ? Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 2 / 20

3 Environnements d'accès aux ressources
Où trouve-t-on les ressources et comment évoluent-elles ? Plateformes d'apprentissage en ligne (LMS) Exemples : Claroline, Blackboard, Moodle,… Un cours/module – Un prof – Un groupe d’apprenants -> Une seule séquence objectif et public précis Entrepôts de ressources et environnements généralistes Exemples : Connexions (permet la co-édition des contenus), ARIADNE, MERLOT, LORNET, … Dans une moindre mesure : Khanacademy Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 3 / 20

4 Environnements d'accès aux ressources
Plateformes dédiées à un domaine spécifique Java Learning Machine (M. Quinson) & IOI : Séquences d’exercices PythonLearn : environnement pour l'apprentissage du langage Python = Livre augmenté (chapitres + ressources) Transposition (augmentée) d’un livre… Chapitres, => progression Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 4 / 20

5 De l’existant vers ce que l’on veut construire
Existant (à explorer encore…) : LOR : navigation (via un graphe) : Klerkx et al. (2004, 2005) = ressources hétérogènes enrichies de métadonnées LMS : 1 cours – Un public = Une séquence spécifique Livre : plus général, mais très (trop) dense Livre augmenté (ex: pythonlearn) : linéaire peu réutilisable JLM : Public & Objectif spécifique : exercices - PBL Java’s Cool : à voir… L’environnement/ressource envisagé : Homogène – grain fin – cours & exercices – adaptable Spectre : Livre augmenté + activités + Manuel de référence Utilisation des traces pour influencer la navigation Public : débutant et avancés Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 5 / 20

6 Visualisation et navigation dans les ressources
En EIAH Le champ de la visualisation de l’information a déjà été introduit dans les EIAH : sur des questions de visualisation des relations entre les objets d’apprentissage (Catteau et al. 2007) sur l’aide à l’accès et la recherche de ressources à partir de dépôts d'objets d'apprentissage (Klerkx et al. 2004). Limites des approches existantes Certains travaux soulignent les limites de l'accès et la recherche des ressources par des formulaires (Klerxk et al. 2005) et proposent des stratégies basées sur une visualisation et une navigation interactive (exemples : treemaps, hypertree pour ARIADNE... ) Ce genre de visualisation interactive peut aider l'utilisateur à choisir la ressource et à mieux naviguer dans un graphe de ressources sans forcément avoir besoin de connaître leur intitulé pour les exploiter. Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 6 / 20

7 Zoom sur la visualisation des graphes
Grand graphe (Nb nœuds > 1000) : Unités épistémiques de petite taille (bien délimités) Relation = pré-requis Adapter la navigation au profil de l’apprenant : Connaissances –> Objectif En prenant en compte les traces des précédents Etude des outils de visualisation des graphes Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 8 / 20

8 Visualisation et navigation dans les graphes
Les outils de visualisation interactive de graphes : Dans le but de mettre en œuvre nos éléments de réflexion, nous avons recensé et testé divers outils libres de représentation interactive des graphes. On peut citer :Image_Graphviz; JS Graph It, Flare, Canviz, NodeBox, Prefuse, Arbor, JIT Notre choix parmi les bibliothèques libres : JIT JIT = Javascript Infovis Toolkit Riches types de visualisations et Bonnes performances (technologie cliente légère : Javascript). Format JSON pour la représentation des données. Plusieurs types d'algorithmes de visualisation (ForceDirected, Rgraph, Treemap, HyperTree, …) Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 8 / 20

9 Techniques de visualisation des graphes
La visualisation interactive des graphes peut résoudre certains problèmes d'accès et de présentation (surtout si le graphe devient volumineux) Techniques de navigation et d'interaction (Hermann, 2000) : déplacement panoramique (pan) opérations d’agrandissement/réduction(zoom), focalisation sur une zone de prédilection ( focus sur une région ou un sous-ensemble de nœuds) Types de visualisations : ForceDirected :les lois des forces : tous les nœuds sont en interaction selon la loi physique des forces. La visualisation peut être statique ou animée, le mouvement permettant de mieux appréhender les dépendances complexes, Rgraph : les graphes radiaux (Rgraph) HyperTree : les arbres hyperboliques Treemaps (les arbres à tiroirs) Définir limites : Il y aurait 8 types en tout dans cette bibliothèque : Les techniques sont nombreuses et la liste proposée n’est pas exhaustive. Nous sommes repartis de l’article de Hermann (2000) Treemaps : ne matérialise pas les dépendances, ne montre que les 1° voisins,… (pas considéré comme prioritaire) Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 9 / 20

10 Utilisation de l'outil JIT et visualisations
L'ensemble des unités d'apprentissage inter reliées peut se formaliser sous la forme d'un graphe connexe orienté acyclique DAG. Une fonctionnalité a été ajoutée au visualiseur ForceDirected initial pour pouvoir cacher/afficher des liens/nœuds ForceDirected Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 10 / 20

11 Utilisation de l'outil JIT et visualisations
L'intérêt de l’HyperTree et de pouvoir donner une allure générale du graphe des unités tout en réduisant certaines régions. Il est ainsi possible de sélectionner des sous-régions pour avoir une vue plus détaillée. HyperTree Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 11 / 20

12 Utilisation de l'outil JIT et visualisations
La visualisation à l'aide des graphes radiaux (Rgraph) permet d'introduire une représentation à niveaux. La structure entière n'est pas visible puisqu'il est possible de sélectionner des sous-régions pour avoir plus de détails. Rgraph Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 12 / 20

13 Journée apprentissage de la programmation
Test de performance Méthodologie et protocole : Construction aléatoire de 10 graphes G (n, p) à l'aide de Gephi n = le nombre de sommets et p = la probabilité de connexion, Production de fichiers de données contenant des listes d'adjacence, Transformation des listes d'adjacence au format JSON, Exécution de l'algorithme et mesure du temps d’exécution 10 graphes testés (x 10 exécutions/graphe/Algorithme, soit 300 exécutions) et comparés sur : HyperTree , ForceDirected et RGraph : n =10 et p=0,5; n = {50,100} et p =0,05 n = {224, 500, 1000} et p = 0,01 n = {2000, 3000, 4000, 5000} et p = 0,001 Méthodologie et protocole Nous avons mesuré les performances d'exécution de trois types de visualisation de la bibliothèque JIT(HyperTree, ForceDirected et RGraph) avec les caractéristiques suivantes : Windows XP SP3, 1Go RAM, 1,66 Ghz, et le navigateur Google Chrome. Cela s'est fait à l'aide de sondes et de transcription des données temporelles : les parties du code à tester ont été encadrées par des lectures de l’horloge (temps de début et temps de fin) pour déduire la durée totale en millisecondes et identifier le comportement de chacun des algorithmes en fonction de la taille des graphes. Nous avons eu recours (pour une majorité des cas) à une dizaine d'exécutions pour la même instance de test pour pouvoir calculer une moyenne de temps d'exécution. Néanmoins ces valeurs restent indicatives (des valeurs différentes selon la charge du processeur et sa vitesse, le navigateur et la quantité de mémoire disponible). Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 13 / 20

14 Journée apprentissage de la programmation
Test de performance Résultats : Comparaison des 3 types algorithmes pour n  {2000, 3000, 4000, 5000} et p = 0,001 Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 14 / 20

15 Passage à l’échelle pour l’algorithme « Force Directed » ?
Test de performance Passage à l’échelle pour l’algorithme « Force Directed » ? Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 15 / 20

16 Passage à l’échelle pour l’algorithme « Hypertree » ?
Test de performance Passage à l’échelle pour l’algorithme « Hypertree » ? Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 16 / 20

17 Passage à l’échelle pour l’algorithme « Rgraph » ?
Test de performance Passage à l’échelle pour l’algorithme « Rgraph » ? Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 17 / 20

18 Journée apprentissage de la programmation
Conclusion Pour la navigation (des apprenants) : Force Directed : Temps d’éxécution dépasse 30 minutes pour N=4000 ! Utilisable seulement pour N < Pour un sous-graph (parcours guidé) ? Rgraph et Hypertree supportent mieux le passage à l’échelle, Pour le graph complet (graphe des matières, navigation libre) ? Pour l’édition et la mise à jour (des enseignants/concepteurs) : Edition intra graphe : Force Directed : Édition (fine) des dépendances Edition inter graphe : HyperTree/Rgraph : Fusionner des sous-graphes Scinder un graphe en plusieurs sous-graphes Les résultats comparatifs obtenus donnent une estimation de la complexité moyenne opérationnelle et permettent surtout de discerner le comportement de chacun des algorithmes pour de plus grands graphes. Ceci montre que les algorithmes RGraph et HyperTree supportent mieux le passage à l'échelle, tandis que le temps d’exécution de l'algorithme ForceDirected croît plus rapidement pour des valeurs élevées (presque 14 minutes pour n=3000, p=0,001). Les temps pour n=4000 et n=5000 n'ont pas pu être relevés (temps d’exécution supérieur à 30 minutes). RGraph semble à peine plus performant que HyperTree. En revanche ForceDirected ne peut être adapté qu'aux petits graphes (n<100). Pour pouvoir visualiser l'ensemble des unités sous la forme d'un graphe, nous opterons plutôt pour le type HyperTree ou RGraph vu que les valeurs de temps restent acceptables même pour n=5000. ForceDirected peut être utile pour des sous-graphes que nous appelons parcours (ce type de graphe ne dépasse pas les 100 nœuds). Son intérêt réside essentiellement dans la malléabilité de la navigation où l'utilisateur peut déplacer les nœuds et ainsi modeler et personnaliser la vue qui s'adapte le mieux à ses préférences. Accès et navigation (pour les apprenants/ tuteurs): Pour un parcours guidé : ForceDirected Pour une navigation libre (mode libre) : Rgraph ou HyperTree Edition et mise à jour (pour les concepteurs d'unités) : Edition intragraphe : ForceDirected (supprimer/ajouter dépendances/noeuds) Edition intergraphe : HyperTree, Rgraph (jumeler des sous-graphes, scinder un graphe en plusieurs sous-graphes ..) Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 18 / 20

19 Journée apprentissage de la programmation
Perspectives Intégration de JIT dans notre prototype pour accès et édition des ressources Construction d’un modèle apprenant : Connaissances, objectifs Parcours déjà effectués, unités acquises… Utilisation des traces des autres apprenants Parcours gagnants (encouragés) Parcours conduisant à un échec (à éviter) => pour une évolution dynamique du graphe => comme feedback au concepteur… Expérimentation Evaluer les parcours d’apprenants Ajuster le comportement des modifications (visuelles) Quel public ? Quels moyens ? Quelles traces ? Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 19 / 20

20 Journée apprentissage de la programmation
Références (Catteau et al., 2007) Catteau, O., Vidal, P. & Broisin, J. (2007). A 3D Representation of Relationships between Learning Objects. In C. Montgomerie & J. Seale (Eds.), Proceedings of World Conference on Educational Multimedia, Hypermedia and Telecommunications. (Herman, 2000) Herman, I., Melancon, G., & Marshall, M. S. (2000). Graph visualization and navigation in information visualization: A survey. IEEE Transaction on visualization and computer graphics, 6(1), 24–43. (Klerkx et al., 2004) Klerkx, J., Duval, E., & Meire, M. (2004). Using information visualization for accessing learning object repositories. Eighth International Conference on Information Visualisation. April (p. 465–470). (Klerkx et al., 2005) Klerkx, J., Meire, M., Ternier, S., Verbert, K., & Duval, E. (2005). Information visualisation: towards an extensible framework for accessing learning object repositories. Proceedings of World Conference on Educational Multimedia, Hypermedia & Telecommunications (p. 4281–4287). Graphe pour Python : Édition et navigation (présenté par Christophe Reffay) Journée apprentissage de la programmation Mahdi Miled 21/02/2012 20 / 20


Télécharger ppt "Graphe pour Python : Édition et navigation"

Présentations similaires


Annonces Google