dimanche 6 octobre 2013

edX pour débutant


petit tutoriel d'installation de edX pour Mac OS X

Voici une démonstration de ce qu'on peut faire rapidement avec la plateforme de CLOM edX. Promue par le consortium edX dirigé par la Harvard University et le MIT avec la participation de l'université Stanford, la plateforme en logiciel libre edX sert à la réalisation et au déploiement de CLOM (Cours en ligne ouverts aux masses) ou MOOCs (Massive Open Online Courses) en anglais. Récemment la plateforme edX fut choisie par le projet «France Université Numérique» et le projet mooc.org en partenariat avec Google.

En fait, voici un petit tutoriel qui décrit un scénario d'installation simple de edX sur Mac OS X [EDX 2013].

Installation simple

Pour se donner une idée rapide de edX, la façon la plus simple est de faire tourner la plateforme edX sur une machine virtuelle en chargeant une image de disque d'un serveur Linux déjà configuré avec edX et tous les logiciels nécessaires à son déploiement. Note: Il vous faut disposer d'un espace libre de 5 Go sur le disque de votre ordinateur.

Pour un travail plus sérieux, il faut procéder à une installation complète de edX et de tous les logiciels nécessaires à son fonctionnement. Cette procédure est réservée aux développeurs familiers de l'installation des logiciels Python et Ruby.

1. - Installation de XCode

1.1 - Visite de l'AppStore...

Si vous n'avez pas XCode, l'environnement intégré de développement ou EID (en anglais IDE: Integrated Development Environment) d'Apple, vous devez l'installer à partir de l'AppStore d'Apple (item «AppStore» dans le menu «pomme» situé tout à gauche de la barre de menu de votre Mac).



1.2 - Installation des outils à ligne de commande

Une fois XCode démarré, vous devez installer les outils à ligne de commande (CLI: Command Line Interface) accessible de la console.

Pour cela choisissez «Preferences» dans le menu «XCode». Puis l'onglet «Downloads» (icône bleue avec une flèche). Puis, dans le panneau «Downloads», sélectionnez l'onglet «Components» puis cliquez sur le bouton «Install» à côté de l'item «Command Line Tools».

2. - Installation de la machine virtuelle

2.1 - Installation de VirtualBox

Commençons par installer le logiciel libre de virtualisation « Oracle VM VirtualBox » (anciennement VirtualBox). C'est la machine virtuelle « VirtualBox » qui émulera le fonctionnement d'un serveur Linux configuré avec tous les logiciels nécessaires à la plateforme edX.

Dans un fureteur, tapez l'Url «http://download.virtualbox.org/virtualbox/4.3.12/»
Puis téléchargez la version 4.3.12 (VirtualBox-4.3.12-93733-OSX.dmg) qui a été testée pour installer edX. En quelques clics vous devriez l'installer très facilement. D'abord cliquez le fichier «VirtualBox-4.3.12-93733-OSX.dmg», puis double-cliquez «VirtualBox.pkg».

2.2 - Installation de Vagrant

Nous utiliserons le logiciel Vagrant, une sur-couche au-dessus de VirtualBox qui simplifie la gestion des machines virtuelles et des images de disques.

Téléchargez la version 1.3.5 de Vagrant (Vagrant-1.3.5.dmg) qui est recommandée, en tapant l'Url «http://downloads.vagrantup.com/tags/v1.3.5» dans un fureteur. Cliquez le fichier «Vagrant-1.3.5.dmg», puis double-cliquez «Vagrant.pkg».

3. - Importation du code source de edX

3.1 - Installation de Git

Afin d'importer le code source de edX, vous devez installer le logiciel de gestion de code «Git», on dit aussi logiciel de gestion de versions. Notez en passant que Git est un logiciel libre créé par Linus Torvalds, le créateur de Linux. Pour vérifier si Git est installé, ouvrez une console (Terminal.app) et tapez la commande: «git --version»

Git est normalement installé avec XCode, l'environnement de développement intégré (IDE) du Mac OS qu'on peut se procurer gratuitement sur « l'AppStore » d'Apple. Vous pouvez également télécharger un installateur graphique de Git pour Mac OS X à partir de l'Url «https://code.google.com/p/git-osx-installer/». Double-cliquez le fichier .dmg qui correspond à votre version de Mac OS X, par exemple «git-1.8.2.2-intel-universal-snow-leopard.dmg» puis cliquez sur le fichier se terminant par l'extension «.pkg»

3.2 - Téléchargement du code edX dans un répertoire Git local

Décidez d'abord d'un endroit propice pour télécharger le code de edX sur votre ordinateur. Par exemple, votre répertoire de base comme usager. Dans la console et tapez la commande: «cd ~»

Pour lancer le téléchargement tapez: «git clone https://github.com/edx/edx-platform.git» ou encore «sudo git clone https://github.com/edx/edx-platform.git» avec votre mot de passe.
Le code source de edX hébergé sur GitHub sera alors téléchargé dans le sous-répertoire «edx-platform» du répertoire courant. Ensuite, donnez les droits en lecture et exécution sur le sous-répertoire «edx-platform» en tapant «sudo chmod -R 755 edx-platform».

4. - Création et démarrage de l'environnement de développement virtuel

Allez dans le répertoire du code source en tapant la commande suivante dans la console: «cd edx-platform». Vous êtes prêt à lancer la création et le démarrage de la machine virtuelle avec l'environnement de développement edX. Maintenant, tapez la commande: «sudo vagrant up».
Vagrant va télécharger une image Linux puis démarrer la machine virtuelle. Le script «edx-platform/scripts/create-dev-env.sh» va installer les dépendances et configurer la machine virtuelle. Cela va prendre un certain temps, allez prendre un café!.

Si tout va bien, vous devriez obtenir le message de réussite ci-dessous.

5. - Connexion et séance de travail avec le serveur edX virtuel

5.1 - Connexion au serveur virtuel

Vous pouvez vous connecter au serveur virtuel de edX en tapant «sudo vagrant ssh»
Lorsque vous vous connectez au serveur virtuel de edX, vous partez dans le répertoire «/opt/edx/edx-platform», le code qu'il contient est synchronisé avec l'espace de travail «edx-platform» de votre ordinateur. Ainsi, vous pouvez développer pour edX en utilisant le serveur virtuel qui tourne sur votre ordinateur.

5.2 - Lancement de l'«ENA / LMS» de edX

Une fois connecté, vous pouvez lancer l'ENA de edX (Environnement numérique d'apprentissage), en anglais LMS (Learning Management System) qui affiche l'interface usager dont se sert l'étudiant. Pour cela, vous devez taper «rake lms[cms.dev,0.0.0.0:8000]». Cette commande lance Rake, un outil Ruby de «construction de programme» (analogue à make) qui compile et édite des liens.
Une fois achevé, vous pouvez accéder à l'interface-usager en tapant l'Url «http://192.168.20.40:8000/» dans un fureteur.

5.3 - Lancement du «Studio» de edX

Après vous être connecté («sudo vagrant ssh») vous pouvez lancer le «Studio» qui est le système-auteur de edX (CMS - Content Management System) en tapant «rake cms[dev,0.0.0.0:8001]».
Une fois le script de «construction» du module «Studio» complété, vous pouvez y accéder en tapant l'Url «http://192.168.20.40:8001/» dans un fureteur.

5.4 - Activation du «Studio»

Pour activer le module «Studio», cliquez le bouton bleu «SIGN UP» situé en haut à droite de la fenêtre et remplissez le formulaire d'enregistrement et d'activation. Un jeton d'activation sera généré.

Pour récupérer l'Url d'activation cherchez la chaîne «registration@edx.org» dans les traces (logs) de la console où vous avez lancé le studio. Quelques lignes plus bas vous trouverez une Url d'activation de la forme «http://192.168.20.40:8001/ activate/123456789012345678901234567890123456» (Note: cette Url est fictive!)

Collez cette Url dans votre fureteur. Vous devriez avoir activé le «Studio» de edX.


Maintenant, vous êtes prêt à créer votre premier cours avec edX!



[EDX 2013] Il s'agit d'une adaptation « pas à pas », en langue française et pour Mac OS X d'une procédure d'installation proposée par edX https://github.com/edx/edx-platform#installation---the-first-time

jeudi 3 octobre 2013

edX, une plateforme CLOM qui s'impose

Avec l'annonce le 2 octobre 2013 de l'initiative FUN (sic) pour (France Université Numérique) basée sur la plateforme en logiciel libre edX, [FIORASO 2013], [BRAFMAN 2013], et celle quelques semaines plus tôt du partenariat entre Google et edX dans mooc.org, le futur YouTube des cours en lignes massifs [CLANCY 2013], la plateforme edX est devenue un incontournable.

FUN (sic)

En tant que Québécois, je salue l’initiative de nos amis Français, mais FUN (!?) pour France Université Numérique et MOOC (ou « moc » comme ils prononcent) alors qu’il existe CLOM (Cours en Ligne Ouverts et Massifs), un terme équivalent en français, me fait sourire! Vu du Québec, on ne peut que déplorer le glissement vers un « franglais » pseudo-branché d'une certaine élite française pour qui la modernité ne peut s'exprimer qu'en anglais. La langue française ne mérite-t-elle pas qu'on fasse preuve d'un peu de créativité?

Toutefois, sur le plan technique, le choix de se baser sur la plateforme en logiciel libre edX est excellent! On évite ainsi de réinventer la roue, tout en contribuant à une communauté active.

Les ENA classiques

Les ENA classiques (environnements numériques d’apprentissage) en anglais LMS (Learning Management System) ou VLE (Virtual Learning Environment) comme Moodle, Sakai, Blackboard, Claroline, etc. ne sont pas employés dans les CLOM vraiment massifs.

Ceci s’explique pour plusieurs raisons :

  • Capacité de monter en charge (scalability)
  • Les ENA classiques n’ont pas été conçus pour accueillir des dizaines voir des centaines de milliers d’étudiants dans un même cours. Au delà d'un certain nombre d'étudiants, le logiciel cesse tout simplement de fonctionner [EPELBOIN 2013]. De plus, certaines plateformes sont davantage des outils de gestion pédagogique que des outils d"enseignement à distance.
  • Architecture web moderne
  • Les ENA classiques ont pour la plupart été conçus à l'époque glorieuse du web 1.0 où l'on cliquait et attendait patiemment le chargement d'une page web. Certains ENA ont migré avec difficulté à coup de rustines vers des architectures plus modernes à base de services, de programmation par événements, de clients riches en technologie Ajax / HTML5 capables de supporter différents appareils mobiles ou fixes, sans oublier les bases de données NoSQL.
  • Architecture modulaire et extensible
  • La modularité de la plateforme edX est un atout important. La possibilité de définir ses propres composants sur la base d'APIs (interfaces applicatives) bien définies comme avec les XModules ou XBlocks applique des principes de génie logiciel éprouvés. La plateforme edX devient ainsi ouverte et extensible.
  • Une variété d'outils d'évaluation
  • La plateforme edX propose déjà une variété d'outils et de modes d'évaluation comme l'autoévaluation, l'évaluation par les pairs et diverses formes d'évaluation automatisée et par modules « intelligents ». Encore là, les possibilités d'extensions constituent un avantage.
  • Dimension sociale des CLOM
  • Les CLOM reposent en partie sur les échanges entre étudiants et de nouvelles fonctionnalités sont nécessaires pour travailler entre pairs, se corriger ou se juger entre étudiants (correction par les pairs). Les ENA classiques ne gèrent pas les échanges pair à pair [EPELBOIN 2013].
  • APIs de collecte des données d'apprentissage
  • Un autre aspect négligé par les ENA traditionnels est la collecte des données massives (Big Data) et particulièrement des données d'apprentissage (Learning Analytics) et de leur traitement statistique (Machine Learning) qui sont au coeur de la capacité des CLOM de s'améliorer sans cesse. Le traitement « intelligent » des données massives est la promesse qu'un jour les CLOM pourront adapter finement leur enseignement à chaque étudiant.
  • Déploiement dans le nuage
  • Plus important encore est la possibilité d'une diffusion massive qui repose sur l’infonuagique (cloud computing) le plus souvent bâtie au-dessus d’un offre commerciale (Amazon AWS, Google AppEngine, etc.) ce qui demande aussi une expertise assez pointue en informatique. Les ENA classiques comme Moodle et Sakai n’ont pas été conçus pour être déployés facilement dans le nuage.
    L'idée des architectures web échelonnables (Scalable) est précisément de permettre le passage à grande échelle d'une maquette logicielle sans modifier le code et les outils logiciels. C’est le même code informatique qui tourne pour 50 ou 50 000 utilisateurs, seulement le nombre de serveurs est plus grand.
    Au moment du déploiement massif, l'avantage de l'infonuagique est de pouvoir louer à la demande des infrastructures sur les plateformes comme Amazon ou Google. Ainsi on ne paie que pour ce qu'on utilise et on évite de coûteux investissements en immobilisation et achat de matériel.

Du logiciel libre svp!

Comme choix de plateforme technologique, nous écarterons Coursera et Udacity qui sont des plateformes de diffusion privées reposant sur des logiciels propriétaires utilisables seulement à travers la signature d’un partenariat. Cela dit Coursera demeure une solution rapide pour une première expérience CLOM dans le cas d’une université prestigieuse qui veut réduire ses risques (plateforme stable, publicité assurée).

Les principaux avantages de la plateforme CLOM edX sont premièrement d'être une plateforme technologique entièrement basée sur des logiciels libres et deuxièmement d'être une plateforme strictement sous le contrôle institutionnel. Ainsi, les universités qui participent au consortium edX contrôlent leur plateforme CLOM à la fois sur le plan technique et sur le plan économique sans lien avec des entreprises privées comme avec Coursera ou Udacity qui poursuivent leurs propres objectifs et intérêts.

La disponibilité en code source libre signifie que la plateforme edX peut être utilisée par d’autres universités et fournisseurs de services éducatifs. La plateforme edX peut être hébergée en interne ou par un service d’hébergement ou un service infonuagique (cloud) externe. La licence libre associée à la plateforme edX permet aux universités de contrôler leurs contenus selon diverses formes et pour différents publics sans autorisation du propriétaire de la plateforme [HAYWARD 2013].

La plateforme edX - point de vue technique

Annoncée en avril 2013 [RIVARD 2013a] et disponible depuis juin 2013, la plateforme edX en logiciel libre sous licence Affero GPL v3 est le résultat de la fusion des développements initiaux de edX (l’entreprise à but non lucratif fondée par Harvard et le MIT) avec Class2Go, une autre plateforme de CLOM en logiciel libre développée par des ingénieurs du département d'informatique de la Stanford University.

Codée essentiellement en Python avec un peu en Ruby, la contribution de l’équipe de Stanford enrichit la plateforme edX avec un outil de clavardage en temps réel, un module d’envoi massif de courriels, des scripts d’installations, des outils d’administration et l’intégration d’un outil externe de gestion / création de questionnaires [HAYWARD 2013].

Malgré sa jeunesse, la plateforme edX est riche, modulaire et conçue pour répondre aux différents critères énumérés plus haut dont le déploiement relativement aisé sur une infrastructure infonuagique. On remarquera l'emploi de Django dont le slogan est « Le socle d'application Web pour les perfectionnistes aux échéanciers serrés! » , de node.js pour la programmation événementielle et de MongoDB, la perle des bases de données NoSQL. Par dessus tout, edX dispose de nombreux APIs modulaires pour l'enseignement à distance, la correction automatique ou la cueillette de données d'apprentissage (edX Insights).

Du point de vue du génie logiciel (et de l'Homme de Java!), le principal défaut de edX est de reposer sur Python, un langage à script (typage dynamique) où l'on découvre ses erreurs à l'exécution. Cela dit, avec l'usage systématique des tests unitaires et du développement guidé par les tests (TDD: Tests Driven Development), la réalisation de logiciels complexes avec Python est tout à fait possible. Python présente aussi de gros avantages, sa simplicité, une syntaxe peu verbeuse, une sémantique cohérente et de nombreuses bibliothèques et extensions. Une fois maîtrisé, Python permet une excellente productivité. Un dernier argument est la quasi mainmise d'Oracle sur le langage Java qui éloigne les nouveaux développements en logiciels libres de Java.

L’annonce le 10 septembre 2013 d’un partenariat entre Google et edX [CLANCY 2013] pour l’hébergement gratuit de CLOM souligne la forte dynamique des CLOM. Cela montre aussi l'importance de maîtriser l'infrastructure infonuagique qui supporte le déploiement massif des CLOM. Cette annonce renforce le choix de edX comme plateforme de CLOM.

Conclusion et perspectives

La disponibilité de la plateforme edX en logiciel libre conçue spécifiquement pour l'enseignement massif à distance et selon une architecture résolument moderne mérite un coup d'oeil.

Issue des trois grandes universités américaines que sont Harvard, Stanford et le MIT, edX mérite que l'on s'y attarde.

Adoptée par 20 des plus grandes universités dans le monde, par la France pour sa plateforme nationale et bientôt disponible sur l'infrastructure de Google, la plateforme edX est devenue une incontournable.

Ma seule réserve est que edX exigerait une contribution financière importante pour faire partie de son consortium. Être membre de ce « Club Select » permet de bénéficier du support technique, de la plateforme de déploiement infonuagique et surtout de la visibilité du portail edX. Par contre, rien n'interdit à une université de se débrouiller à partir des codes sources. En cela, l'annonce du partenariat avec Google dans mooc.org constitue un débloquant majeur.



[FIORASO 2013] Fioraso, Geneviève, France Université Numérique : construire l'Université de demain, Discours de la Ministre de l'Éducation supérieure, 2 octobre, 2013.
http://www.enseignementsup-recherche.gouv.fr/cid74183/france-universite-numerique-construire-l-universite-de-demain.html

[BRAFMAN 2013] Brafman, Nathalie. “L’université française passe de l’amphi aux cours en ligne.” Le Monde.fr, October 2, 2013.
http://www.lemonde.fr/enseignement-superieur/article/2013/10/02/l-universite-francaise-passe-de-l-amphi-aux-cours-en-ligne_3488383_1473692.html.

[CLANCY 2013] Clancy, Dan. “We Are Joining the Open edX Platform.” Blog. Google Research Blog, September 10, 2013.
http://googleresearch.blogspot.ca/2013/09/we-are-joining-open-edx-platform.html

[EPELBOIN 2013] Epelboin Yves. “Les MOOC en Europe.” UPMC - TICE - Confluence, July 2013.
http://wiki.upmc.fr/display/tice/Les+MOOC+en+Europe

[HAYWARD 2013] Hayward Brad. “Stanford Online Coursework to Be Available on New Open-source Platform.” News. Stanford University, June 11, 2013.
http://news.stanford.edu/news/2013/june/open-source-platform-061113.html