Archives du mot-clé MOOC

Massive Open Online Course
Cours en ligne ouvert et massif

Un MOOC sur la « Fantasy »

J’aime beaucoup le principe des MOOCs. Ce système permet de se former à son rythme, à distance, avec des horaires généralement plutôt compatibles avec une vie de famille puisque l’on travaille un peu quand on veut (ce qui ne veut pas dire que l’on peut ne rien faire ;-)). J’ai suivi depuis quelques années plusieurs MOOCs, la plupart en lien avec l’informatique. J’ai commencé par le tout premier mis en ligne par OpenClassRooms.com (anciennement le site du Zéro) sur le développement de sites web avec HTML5 et CSS3. Je parlais d’ailleurs de mon expérience dans cet article.

Aujourd’hui, pour changer, je ne vais pas parler informatique, mais d’un MOOC que j’ai suivi il y a à peu près un an, dont le sujet était la « Fantasy ». On parle ici du genre littéraire et médiatique, pas de « fantaisie ». 🙂 Que l’on aime ou pas, tout le monde de nos jours est capable de citer une œuvre de fantasy : Harry Potter, Le Seigneur des Anneaux, Game of Thrones

Précisons tout d’abord que ce MOOC en français est hébergé par la plateforme FUN (France Université Numérique) et proposé par l’université d’Artois. Le titre complet de la formation est « Fantasy, de l’Angleterre victorienne au Trône de Fer« . Tout un programme.

Le programme est réparti sur cinq semaines et est plutôt fourni, avec des intervenants de qualité. Le cours est divisé en modules composés chacun d’un cours en vidéo, de sa transcription en texte, de la bande son indépendante (de cette façon, on peut vraiment choisir son format pour travailler), de repères littéraires et d’un forum pour dialoguer avec les autres participants et les enseignants. Chaque module peut être validé par un QCM et des exercices d’appariement (faire correspondre des ouvrages avec des styles, des titres, des couvertures… en rapport avec le module). Des activités corrigées par les pairs sont proposées pour ceux qui le souhaitent. Les thèmes abordés sont variés avec l’histoire de la Fantasy, des origines à nos jours, avec les mythes fondateurs, les médias, les jeux de rôle, la littérature actuelle… Je n’en cite ici que quelques-uns, et pas forcément dans l’ordre d’apparition.

L’équipe pédagogique est composée de :

  • Anne Besson, maître de conférences en Littérature générale et comparée à l’université d’Artois (Arras). Elle est spécialisée dans la littérature de genre.
  • Isabelle-Rachel Casta, enseignant-chercheur à l’université d’Artois. Elle est spécialisée dans les littératures noire, criminelle et fantastique.
  • Isabelle Olivier, agrégée de Lettres Modernes, maître de conférence à l’université d’Artois, auteure d’une thèse sur la littérature arthurienne sous un angle anthropologique et mythologique.
  • Emmanuelle Poulain-Gautret, agrégée de Lettres Modernes, maître de conférences en langue et littératures médiévales à l’université de Lille 3. Elle est spécialisée dans l’épopée médiévale, la chanson de geste.
  • Myriam White-Le Goff, agrégée de Lettres Modernes, maître de conférences en langue et littératures médiévales à l’université d’Artois.

Ne vous laissez pas impressionner par les qualifications de l’équipe pédagogique, elles ont su se mettre au niveau de leurs interlocuteurs afin de rendre les cours tout à fait accessibles.

J’ai pris énormément de plaisir, tout d’abord à en apprendre plus sur un genre littéraire (entre autre chose) que j’aime particulièrement, et ensuite à toucher du bout du doigt sur ce qui se cache derrière ce terme de « fantasy » (on y trouve bien plus de choses que ce que l’on pourrait penser).

L’an dernier, le même parcours était proposé à tous les participants. Il semblerait cette année que trois parcours soient disponibles, en fonction du temps et de l’engagement que chacun pourra mettre dans le suivi de ce MOOC. Les parcours « Hobbit », « Elfe » et « Mage » permettront d’aller de plus en plus loin en fonction des envies et des disponibilités de chacun. L’équipe a donc visiblement pris en compte les remarques (positives et négatives) des participants de la première édition afin d’améliorer encore le cours, ce qui est une bonne chose, et qui me donne envie de m’y inscrire de nouveau cette année afin de pouvoir profiter des nouveautés ! 🙂

Quelques mots sur la plateforme FUN en elle-même… Que dire si ce n’est qu’il s’agit d’une plateforme de e-learning tout à fait opérationnelle et simple d’emploi. Il est possible d’y suivre ses modules, sa progression, de visualiser les différents supports et de communiquer avec les autres participants, comme avec l’équipe pédagogique (assez présente durant le MOOC). Le seul bémol pour moi est le moteur de forum utilisé, absolument pas pratique. Il n’était pas toujours facile de suivre une discussion, principalement à cause de la présentation des messages (pas d’arborescence claire message/réponse). A part ça, je suis prêt à suivre de nouveau un cours sur FUN si l’occasion se représente (le cours Fantasy peut-être  ? ;-)).

Pourquoi en parler si longtemps après ? Tout d’abord, parce qu’à force de laisser traîner les choses, je ne prends le temps d’écrire un article que maintenant (j’ai hésité d’ailleurs, parce que le sujet du MOOC s’éloigne un peu du sujet de ce blog… mais après tout, ça permet de faire connaître une plateforme de MOOC française, alors pourquoi pas). Ensuite, seconde bonne raison, une nouvelle édition de ce MOOC est prévue et commence le 2 février 2016. Attention, les inscriptions sont ouvertes jusqu’au 15 mars 2016 (cela permet aux retardataires de s’inscrire tout de même et de rattraper le temps perdu). Passé ce délai, il faudra de nouveau attendre un an (vu la qualité des supports et l’intérêt du sujet, nul doute qu’il y aura au moins une édition par an).

Le MOOC « Fantasy » sur les réseaux sociaux :

MOOC OpenClassrooms PHP/MySQL – semaine 4

Cette dernière semaine concerne l’utilisation « avancée » de PHP. En quoi consiste donc l’utilisation « avancée » de PHP pour les auteurs de cette formation ?

Il s’agit principalement de l’utilisation des expressions rationnelles et de la programmation orientée objet ou POO.

La première chose que je remarque en allant sur la page dédiée à cette dernière semaine, c’est l’absence de TP. Je suis déçu (comme beaucoup, si j’en crois les réactions sur le forum). C’est très dommage. Même si le TP de la semaine précédente avait demandé beaucoup de travail aux participants, il n’y a rien de plus formateur que d’utiliser ce que l’on apprend sur des cas concrets.

Les cours en vidéo :

Trois vidéos sont disponibles cette semaine.

  1. Les expressions régulières, partie 1/2
  2. Les expressions régulières, partie 2/2
  3. La programmation orientée objet

1. Les expressions régulières, partie 1/2 (16’25)

Une introduction à l’utilisation des expressions rationnelles  pour effectuer des recherches dans un texte (preg_match()). Présentation de la syntaxe des expressions rationnelles, des options disponibles (sensibilité à la casse ou non…), des délimiteurs, des classes de caractères… au travers de différents exemples.

2. Les expressions régulières, partie 2/2 (10’10)

Utilisation des expressions rationnelles pour effectuer des remplacements dans un texte (preg_replace()) et/ou en extraire des parties.

3. La programmation orientée objet (15’38)

Introduction à la programmation orientée objet : les classes, les attributs, les méthodes…

Une présentation assez simple de la POO destinée aux débutants avec des exemples pour gérer un membre d’un site web. On y apprend comment créer une classe, des attributs et des accesseurs.

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Six questions concernent les expressions rationnelles et quatre la programmation orientée objet. Elles sont simples dans l’ensemble et n’importe qui ayant visualisé les vidéos devrait être capable d’y répondre correctement.

Les échanges sur le forum :

Les messages échangés concernent principalement l’utilisation et la conception des expressions rationnelles. Il s’agit d’un sujet vaste et complexe et les participants se posent beaucoup de questions. Certains vont assez loin dans la pratique et conçoivent des scripts assez avancés pour tester les expressions rationnelles.

Au final, assez peu de sujets traitent de la POO. C’est assez normal. Il y a déjà eu assez d’informations à assimiler durant les trois premières semaines et comme il n’y a pas de TP, tout le monde n’est pas motivé pour s’intéresser réellement à la POO et l’expérimenter.

Mon sentiment concernant cette quatrième et dernière semaine :

Cette dernière semaine est intitulée « Utilisation avancée de PHP ».

En fait, nous avons seulement une présentation des expressions rationnelles et une brève introduction à la programmation orientée objet. C’est assez peu finalement.

Autant la présentation des expressions rationnelles est intéressante, autant l’introduction à la POO est trop succincte pour être réellement utile.  C’est un sujet bien trop vaste à mon avis pour être abordé en quinze minutes à la fin d’un cours.

Bref, je suis un peu déçu par cette dernière semaine. Il n’y a pas à mon sens réellement de « PHP avancé » cette semaine, qui ne tient donc pas ses promesses. D’autre part, je trouve discutable le choix de survoler la POO à la fin du cours. La programmation orientée objet mériterait un MOOC à elle seule tellement il y a de choses à voir.

Les participants débutants ont pas mal d’informations à assimiler durant les trois premières semaines. Peut-être aurait-il été plus intéressant par exemple d’insister un peu plus sur la sécurité (les risques, les différents types d’attaques et les contre-mesures à utiliser) et de proposer un TP récapitulatif, un peu comme pour le MOOC HTML5/CSS3 (d’ailleurs ce TP a été réclamé par un certain nombre de participants sur le forum).

Pour conclure…

Je suis content d’avoir participé à ce premier MOOC PHP/MySQL. L’ambiance a toujours été bonne sur les forums, les participants étaient motivés et à l’écoute de tous les conseils que pouvaient leur donner les plus expérimentés. Les vidéos étaient de bonne qualité, à part quelques problèmes de son sur certaines la première semaine. Je pense que les participants ayant bien suivi les vidéos ont pu acquérir quelques bases de PHP, ceux s’étant en plus aidé du support écrit ayant sans aucun doute plus progressé.

Je note deux points négatifs : la rareté des travaux pratiques (un seul sur quatre semaines, même si l’étude et la reproduction du code présenté dans les vidéos pouvaient passer dans la pratique) et la programmation orientée objet survolée dans la quatrième semaine. Rien ne remplace la pratique pour comprendre et assimiler le fonctionnement de PHP. Par conséquent, je pense qu’un TP par semaine aurait été mieux, avec une difficulté croissante naturellement. Par exemple : première semaine, manipulation des variables, calculs, boucles et tests. Deuxième semaine : transmission des informations en utilisant un formulaire et utilisation de la session et des cookies (identification d’un utilisateur par exemple). Troisième semaine : même chose que la deuxième semaine, mais en stockant les informations dans une base de données. Quatrième semaine : analyse des failles possible et optimisation de la sécurité. Les participants auraient sans doute été plus conscients de leur progression avec quatre TPs. Par contre, ça leur aurait demandé plus de travail durant la semaine (2h30 prévues selon OpenClassrooms, ce qui est je pense déjà sous-estimé), entre la consultation des vidéos, la réalisation des TPs, et la correction de trois TPs des autres participants. Il faudrait je pense également prévoir un MOOC spécifique pour le « PHP avancé » afin d’y aborder les sujets importants de façon plus complète qu’un survol lors de la dernière semaine.

Pour conclure, j’ai passé quatre semaines sympathiques à suivre ce MOOC. Les échanges sur les forums ont été riches et m’ont permis de faire quelques « rencontres » intéressantes. L’organisation et les outils (qualité des vidéos, correction du TP) ont fait beaucoup de progrès depuis le MOOC HTML5/CSS3 auquel j’ai participé fin 2013, même si il reste encore des choses à améliorer (plus de travaux pratiques, forum peu pratique à utiliser, tous les messages étant affichés à la suite sans possibilité de classement par discussion…). Le fonctionnement des MOOCs a été modifié : désormais, il est possible d’en commencer n’importe quand, chaque partie étant validée une semaine après l’inscription effective. C’est très intéressant pour ceux qui ne peuvent pas forcément s’organiser comme ils le souhaitent et libérer suffisamment de temps pour suivre un MOOC à dates fixes.

A l’heure où j’écris ces lignes, le MOOC n’est pas encore tout à fait terminé. Je ne connais donc pas exactement le nombre d’inscrits, ni le nombre de participants ayant réellement terminé le MOOC. Je ne manquerai pas de vous en faire part dès qu’OpenClassrooms publiera les statistiques…

MOOC OpenClassrooms PHP/MySQL – semaine 3

Je commence la rédaction du compte rendu de cette troisième du MOOC alors que s’achève bientôt la quatrième… Il semblerait que j’aie pris un peu de retard.

Durant cette semaine, nous avons abordé l’utilisation d’une base de données avec PHP, en l’occurrence, MySQL, ainsi que naturellement, le langage SQL.

Organisation du MOOC :

L’organisation reste la même que celle des autres semaines, à un détail près : un TP est prévu. Enfin de la pratique ! 🙂

Les cours en vidéo :

Sept vidéos sont disponibles cette semaine.

  1. Présentation des bases de données
  2. phpMyAdmin
  3. Lire des données
  4. Écrire des données
  5. Les fonctions SQL
  6. Les dates en SQL
  7. TP : un mini-chat

1. Présentation des bases de données (6’26)

Introduction aux systèmes de gestion de bases de données et à MySQL en particulier, et quelques exemples de requêtes SQL.

2. phpMyAdmin (12’00)

Utilisation de phpMyAdmin pour créer, gérer des bases de données, des tables et manipuler les données via l’interface ou des requêtes SQL.

3. Lire des données (23’38)

Récupération et sélection de données dans une base. Utilisation de PDO MySQL.

4. Écrire des données (8’46)

Création de requêtes de création, de mise à jour et de suppression de données. Utilisation de PDO MySQL et des requêtes préparées.

5. Les fonctions SQL (10’33)

Présentation des fonctions SQL. Comptage des résultats, calcul de moyenne, transformation en majuscules ou en minuscules…

6. Les dates en SQL (8’15)

Fonctions de manipulation des dates en SQL.

7. TP : un mini-chat (2’50)

Présentation du sujet du TP :  la réalisation d’un mini-chat permettant à un utilisateur de saisir un pseudo et un message, d’enregistrer ce dernier dans une base de données, et de consulter la liste des messages existants.

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Les questions ont toutes pour sujet l’utilisation des bases de données (logique non ? ;-)). Elles sont relativement simples et reprennent les sujets abordés dans les vidéos.

Le TP :

Cette semaine est à mon avis sans aucun doute plus intéressante. Enfin l’occasion de mettre en pratique les connaissances acquises au travers des cours. Le sujet en lui-même n’est pas très complexe, il s’agit de la réalisation d’un « mini-chat » permettant à l’utilisateur d’enregistrer un message et de consulter la liste des messages existants. Ce TP permet de mettre en œuvre la théorie abordée dans les chapitres précédents : transmission de données entre les pages, utilisation d’un formulaire, lecture et écriture dans une base de données, utilisation de session et/ou de cookie…

Le TP sera corrigé par les participants eux-mêmes. Chaque participant doit envoyer son travail, et pour obtenir sa note validée, corriger lui-même trois TPs. Chacun obtiendra par conséquent trois notes provenant de trois correcteurs différents. La note moyenne comptera pour la réussite du MOOC au même titre que celles obtenues pour les QCM.

Pour faciliter la correction, un barème précis (présence de fichiers, fonctionnalités…) est fourni.

J’ai corrigé trois copies, et j’ai mis de mémoire les notes de 8, 9 et 10. De bonnes copies, avec quelques petits défauts que je me suis permis de signaler à leurs auteurs. Je remarque que les débutants ne commentent pas beaucoup leur code, et je les encourage à le faire. 🙂

Ma version du TP est ici. Elle vaut ce qu’elle vaut. J’ai remplis je pense le cahier des charges. Je n’ai pas créé une interface sophistiquée, préférant répondre à la demande, et uniquement à la demande. De plus, étant donné que les corrections sont effectuées par des débutants la plupart du temps, et que j’ai choisi une solution avec un certain nombre de fichiers séparés, j’ai ajouté à la racine du TP un fichier LISEZMOI.txt décrivant avec suffisamment de précisions l’installation, la configuration, l’utilisation et les choix techniques pour la notation.

Les échanges sur le forum :

Les échanges sont très nombreux cette semaine. Il est naturellement principalement question de la réalisation du TP et des difficultés rencontrées. Il y a un peu de tout, des propositions, des appels à l’aide, des réponses à ces appels… Beaucoup de débutants trouvent l’exercice très difficile. Certains le trouvent même impossible à réaliser. Des encouragements les aideront à continuer. Je pense que nous verrons à la fin du MOOC les statistiques qui nous diront combien de personnes ont rendu leur TP et quelles notes ont été distribuées. Il y a des débats sur les différentes façons de faire : un fichier ou bien plusieurs, prise en compte de la sécurité au travers des attaques XSS et des injections SQL, utilisation de la session et / ou d’un cookie pour la mémorisation du pseudo de l’utilisation…

Mon sentiment concernant cette troisième semaine :

Enfin de la pratique !!!

Tout le monde l’attendait ce TP. C’est là l’occasion d’utiliser tout ce qui a été vu durant ces trois semaines. Il a également permis à beaucoup de mesurer le gouffre qui sépare la théorie de la pratique. Ce qui paraissait pourtant simple dans le cours est finalement plus complexe que prévu à mettre en place avec un véritable exemple.

Certains participants se plaignent de la complexité du TP. En effet, il mêle tous ce qui a été vu jusque là, et cela fait sans doute beaucoup d’un seul coup lorsque l’on est débutant. Le temps de travail prévu par semaine (2h30) a dans ce cas sans aucun doute été largement sous-estimé.

Comme je l’ai fait remarquer sur le forum, il aurait sans doute été judicieux (mais plus long et complexe à mettre en place, ne serait-ce que parce qu’il faut corriger les copies) d’avoir un TP par semaine, avec une difficulté croissante au fil des semaines. J’ai même poussé le vice à proposer mon aide mon la rédaction de ces TPs… il faudra maintenant que je trouve le temps de le faire. 🙂

La quatrième et dernière semaine traitera de l’utilisation avancée de PHP, avec les expressions rationnelles, et la programmation orientée objets (POO).

MOOC OpenClassrooms PHP/MySQL – semaine 2

Mes impressions concernant la première semaine du MOOC « Concevez votre site web avec PHP et MySQL » organisé par OpenClassrooms ont été publiées ici.

Comme promis, voici un aperçu de la deuxième semaine de ce MOOC, dont le résumé est le suivant :

Transférer des informations d’une page à une autre est une des clés d’un site web dynamique. Que ce soit dans la barre d’adresse ou via des formulaires, il existe de nombreux moyens de faire transiter des données.
Nous découvrirons aussi les mécanismes des sessions et des cookies, deux techniques très pratiques pour retenir des informations.

Organisation du MOOC :

Depuis cette semaine, l’organisation des MOOCs OpenClassrooms a été modifiée. Jusqu’à maintenant, un MOOC commençait un lundi, et la semaine s’achevait le dimanche à 23h59 avec la date limite de validation des exercices. Même si chaque participant était évidemment au courant de ce fonctionnement et des dates limites, des problèmes d’emploi du temps, de charge de travail ou encore de connexion (nous ne sommes pas tous égaux devant l’accès à Internet, les participants se situant dans le monde entier) pouvaient en empêcher certains de valider la semaine dans les temps. Si la semaine n’était pas validée, la note de l’exercice était de 0, et même si elle n’est pas éliminatoire, cela provoquait assurément de la frustration chez ceux qui avait rencontré un problème. Cela représentait également un handicap pour ceux qui souhaitaient obtenir la certification OpenClassrooms à la fin (la validité et la reconnaissance de cette certification est un autre débat).

Désormais, il est possible de rejoindre un cours OpenClassrooms quand on le souhaite. On a alors accès directement à la semaine 1 et l’on dispose de 7 jours complets pour valider le ou les exercices. La deuxième semaine sera disponible 7 jours après l’inscription, et ainsi de suite pour les semaines suivantes.

Toutes les informations concernant cette nouvelle organisation se trouvent ici.

Pour le reste, le fonctionnement est le même que celui de la semaine 1 : des cours en vidéo (trois cette semaine pour une durée totale d’un peu moins d’une heure), un QCM et le forum.

Les cours en vidéo :

Trois vidéos sont disponibles cette semaine.

  1. Transmettre des données avec l’URL
  2. Transmettre des données avec les formulaires
  3. Variables superglobales, sessions et cookies

Elles sont dans l’ensemble plutôt de bonne qualité, et je n’ai pas constaté de différences de niveau sonore comme dans celle de la première semaine (je n’ai d’ailleurs pas non plus relevé de remarque à ce sujet sur le forum comme ça avait été le cas pour la semaine 1).

 1. Transmettre des données avec l’URL (18’58)

Présentation au travers d’un exemple simple de la façon dont il est possible d’échanger des informations entre le client et le serveur en se servant de l’url. Au passage, quelques conseils avisés sont distillés concernant la sécurité de base (ne jamais faire confiance aux données provenant du client 😉 ) et quelques fonctions permettant de tester et filtrer les variables sont proposées.

2. Transmettre des données avec les formulaires (13’58)

Démonstration du fonctionnement d’un formulaire, présentation des méthodes GET et POST, de la récupération et du traitement des données en PHP. Il est de nouveau conseillé de ne jamais faire confiance aux données provenant de l’utilisateur (introduction très rapide aux attaques XSS, utilisation de htmlspecialchars()).

 3. Variables superglobales, sessions et cookies (14’43)

Présentation des différentes variables superglobales, notamment $_SERVER, $_SESSION, et $_COOKIE et de leur utilisation pour la transmission d’informations d’une page à une autre.

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Les questions se font un peu plus précises, ce qui est normal puisque nous sommes rentrés dans le vif du sujet. Elles mettent en évidence les difficultés de compréhension que les participants peuvent parfois rencontrer. On retrouve notamment sur le forum beaucoup de questions concernant l’utilisation des timestamp, pour calculer la date d’expiration d’un cookie par exemple. Beaucoup confondent date d’expiration (date courante + durée de vie en secondes) et durée de vie du cookie. La dernière question du QCM a fait l’objet de plusieurs « contestations » sur le forum alors qu’à mes yeux elle était très claire.

Un exercice supplémentaire noté devait également être proposé cette semaine. Il l’a été quelques temps mais a été retiré rapidement, le système de notation entre participants n’étant visiblement pas encore tout à fait au point. Certains l’ont néanmoins fait et leurs contributions ont fait l’objet de nombreuses discussions sur le forum.

J’espère que le système sera au point pour la semaine 3.

Les échanges sur le forum :

Les échanges sont nombreux cette semaine encore. Normal, on attaque les choses sérieuses avec la gestion des formulaires. Beaucoup de questions concerne le code, la façon de gérer le formulaire côté serveur, les erreurs commises.

On y parle également de sécurité, d’injection, de filtrage… de bonnes pratiques en général. Tout le monde n’est pas d’accord sur les méthodes à adopter, sur le fait qu’il faille filtrer ou non les données, mais dans l’ensemble, grâce aux échanges entre les participants de différents niveaux, tout le monde progresse.

 Mon sentiment concernant cette deuxième semaine :

Si les vidéos sont un peu plus « pointues » que celles de la semaine 1 qui abordaient les notions de base, elles ne fournissent encore une fois qu’une base à partir de laquelle travailler. Elles sont suffisamment claires pour permettre d’amener les participants à la réalisation d’un petit formulaire et au traitement des données envoyées, et elles laissent suffisamment de points dans l’ombre pour qu’ils soient obligés de chercher des informations ailleurs. Le réflexe « je vais voir dans le manuel PHP » commence à rentrer. 🙂

Les discussions sur le forum sont logiquement plus « pointues » également, avec des questions pratiques concernant l’utilisation des variables, le traitement des données côté serveur, la sécurisation d’un formulaire… Quelques questions ont également été posées sur des notions qui sont abordées dans le cours PHP au format PDF pour ceux qui y ont accès et qui ne sont pas mentionnées dans les vidéos (forcément moins complètes), comme les constantes. Les deux supports sont bien entendu complémentaires.

La semaine prochaine, nous allons aborder l’utilisation de bases de données avec PHP, et notamment MySQL et le langage SQL.

A bientôt pour la semaine 3 du MOOC.

MOOC OpenClassrooms PHP/MySQL – semaine 1

Cette semaine a ouvert le MOOC « Concevez votre site web avec PHP et MySQL » organisé par OpenClassrooms.

J’avais déjà participé à un premier MOOC durant l’automne 2013 (c’était d’ailleurs le premier MOOC organisé par OpenClassrooms) et j’avais relaté mon expérience, plutôt positive dans l’ensemble, dans cet article.

Pourquoi participer à un MOOC sur PHP et MySQL pour débutant alors que ça fait près de quinze ans que je développe dans ce langage ? Tout d’abord, parce que je pense que l’on peut toujours apprendre, et que c’est parfois en revenant aux bases que l’on peut (re)découvrir des choses. Ensuite, parce que je trouve ce principe de MOOC et la façon de faire d’OpenClassrooms plutôt sympathiques et que je voudrais voir comment les pratiques évoluent chez eux. Enfin, parce que j’espère en participant activement au forum et aux discussions autour du contenu du MOOC et de son organisation, pouvoir à mon petit niveau aider les débutants dans leur découverte du langage et dans la mesure du possible, distiller quelques « bonnes pratiques » de développement issues de mon expérience et de mes lectures.

Je vais essayer, dans la mesure du possible, de publier un article sur ce blog pour chaque semaine de ce MOOC.

Entrons maintenant dans le vif du sujet…

Organisation du MOOC :

Les cours s’étalent sur quatre semaines. Un certain nombre de vidéos traitant chacune d’un aspect particulier sont mises à disposition des participants durant toute la durée de la formation.

Un exercice est à réaliser avant le dimanche 23h59 afin de valider la semaine. Il est noté sur 10. A la fin, le cumul des notes permettra ou non de valider le MOOC. Lors du premier MOOC auquel j’avais participé, lorsque la note finale était suffisante, un badge était délivré et apparaissait ensuite dans le profil de l’utilisateur. Il semblerait que cette pratique ait été abandonnée afin de mettre en avant les certifications proposées par OpenClassrooms.

Enfin, un forum est à la disposition des participants afin qu’ils puissent échanger sur les cours, les exercices, et sur tous les thèmes en rapport avec le MOOC en général. Un nouveau forum est ouvert chaque semaine. Ce forum n’est pas des plus pratiques, puisque tous les messages se suivent et qu’il est rapidement très difficile de s’y retrouver si l’on ne le consulte pas régulièrement. J’espère que cela évoluera à l’avenir vers un outil plus efficace.

Cette première semaine est consacrée naturellement aux bases de PHP : installation des outils nécessaires, premiers pas avec PHP…

Les cours en vidéo :

Neuf  vidéos sont disponibles cette semaine.

  1. Introduction à PHP
  2. Préparer son ordinateur
  3. Premiers pas avec PHP
  4. Inclure des portions de page
  5. Les variables
  6. Les conditions
  7. Les boucles
  8. Les fonctions
  9. Les tableaux

Elles sont dans l’ensemble plutôt de bonne qualité, même si il peut y avoir de grosses différences de niveau sonore dans certaines.

 1. Introduction à PHP (6’42)

Présentation du fonctionnement d’un site web, différences entre un site statique et un site dynamique, échanges entre le client et le serveur, mention des autres langages utilisés pour le web et des autres serveurs de bases de données.

2. Préparer son ordinateur (8’09)

Installation des outils nécessaires au développement PHP sur son ordinateur : navigateur web, éditeur de texte (SublimeText), Apache, PHP, MySQL (Wamp, Mamp ou Xamp).

 3. Premiers pas avec PHP (8’11)

Première utilisation de PHP pour afficher des informations dans une page HTML. Un petit « echo ‘Bonjour !’; » pour commencer. 🙂

4. Inclure des portions de page (8’34)

Utilisation de PHP pour inclure des portions de page et ainsi éviter la répétition de code HTML pour une entête, un pied de page et un menu. Utilisation de l’instruction « include« .

5. Les variables (5’55)

Règles de nommage, déclaration et utilisation des variables. Présentation des différents types et des opérations de base.

6. Les conditions (10’46)

Présentation des structures conditionnelles en PHP : « if« , « elseif« , « else« , « switch/case« , les opérateurs de comparaison et les booléens.

 7. Les boucles (5’59)

Présentation des structures de boucles : « while » et « for« . Je pense que la structure « do… while » aurait également pu être abordée dans ce chapitre. Il est toujours intéressant de connaître les différences de comportement basiques entre « while » et « dowhile« .

8. Les fonctions (8’49)

Présentation des fonctions de base de PHP (longueur d’une chaîne de caractères, manipulation des chaînes, des dates).

Création et utilisation de fonctions utilisateur.

9. Les tableaux (9’53)

Introduction à la création et à l’utilisation des tableaux en PHP, numériques et associatifs, utilisation de « print_r« . Parcours d’un tableau à l’aide de « for » et de « foreach« .

Les exercices :

Un QCM composé de dix questions comptant chacune pour un point est proposé.

Sans surprise, les questions tournent autour des concepts et des informations présentées dans le vidéos et concernent les bases de PHP.

Les échanges sur le forum :

Les échanges sont nombreux et des sujets reviennent.

Je pense que ce qui revient le plus au début, ce sont les problèmes liés à l’installation de Wamp ou Mamp sur les machines des participants. Beaucoup rencontrent des problèmes après l’installation avec un ou plusieurs serveur(s) qui ne démarre(nt) pas. Généralement, des solutions sont trouvées et partagées. J’ai moi même rencontré ce genre de problème l’an dernier et c’est pour cela que lorsque j’ai changé de pc, j’ai préféré travailler uniquement avec des serveurs virtuels (voir mon article à ce sujet).

Ensuite, les participants commencent à se poser des problèmes liés au code, à différentes fonctions, les boucles, les conditions… C’est le moment où ceux qui connaissent un peu mieux le sujet peuvent aider les autres. C’est en général une expérience très enrichissante.

Encore peu de discussions autour du code en lui-même, nul doute que les choses vont changer au fur et à mesure des semaines.

 Mon sentiment concernant cette première semaine :

Depuis ma participation au premier MOOC organisé par OpenClassrooms en septembre/octobre 2013, les choses ont bien évolué, notamment en ce qui concerne les vidéos. Elles sont plus professionnelles, de meilleure qualité, même si il subsiste encore parfois quelques problèmes de niveau sonore. Je n’ai pas non plus rencontré les mêmes problèmes qu’il y a quelques mois pour leur visionnage (le lecteur avait été changé plusieurs fois durant le MOOC). J’ai pu les visionner sans aucun soucis.

Concernant le contenu en lui-même, les bases de PHP sont abordées et cela peut suffire pour démarrer. Le choix de Wamp / Mamp / Xamp est judicieux dans la mesure où il permet d’être rapidement opérationnel pour démarrer avec PHP, sans pour autant se pencher sur les problèmes d’installation et de configuration d’Apache, PHP et MySQL.

Par contre, chaque vidéo ne fait qu’effleurer le sujet abordé. Il s’agit bien entendu d’une introduction afin de mettre les participants sur les rails. Mais dans l’optique de les amener progressivement à s’améliorer, il aurait été intéressant dès ce stade, de proposer quelques exercices accompagnés d’une correction. Des liens vers des exercices ont été proposés dans le forum par d’autres participants, il est dommage qu’ils n’aient pas été directement donnés par les organisateurs. D’après un message de Mathieu Nebra sur le forum en réponse à une question posée par un participant, des exercices seraient proposés à partir de la semaine 2. Le MOOC  n’en sera donc que plus intéressant !

Je regrette par contre que le moteur du forum soit toujours le même, car il n’est pas vraiment pratique. Tous les messages sont affichés à la suite et il n’est pas possible de grouper les conversations. Ce n’est pas trop gênant au début, mais au bout d’une semaine, le forum contient quatorze pages. Pour retrouver une information, il faut parcourir toutes les pages. Et le nombre de pages va forcément augmenter au fur et à mesure de l’avancement du MOOC.

Une dernière remarque, je trouve dommage qu’un lien aussi indispensable que celui du manuel PHP n’ait pas été mentionné dès les premières vidéos de cours.

A bientôt pour la semaine 2 du MOOC.

SimpleIT publie les statistiques du MOOC HTML5/CSS3

En septembre et octobre 2013, j’ai participé à un MOOC HTML5/CSS3 organisé par OpenClassrooms (SimpleIT est la structure commerciale) et j’ai publié mes impressions sur cette formation dans cet article.

SimpleIT a publié aujourd’hui les statistiques des données recueillies lors du MOOC HTML5/CSS3 OpenClassrooms.

Un certain nombre de ces informations sont intéressantes. Par exemple, nous étions 7564 préinscrits, alors qu’au final, il y a eu 18835 participants. Cela signifie que 11271 personnes ont rejoint le MOOC en cours de route. Les participants venaient d’un grand nombre de pays différents (mais 82% avaient le français comme langue maternelle) et toutes les classes d’âge étaient représentées (de 9 à 83 ans).

Par contre, j’ai été surpris par le taux de suivi des exercices qui était de 52% la première semaine, la plus facile, mais qui est tombé à 16% la dernière semaine, la plus difficile, lorsqu’il a fallu rendre le TP avec une page web complète. Cela tendrait à prouver, selon moi et comme je l’ai mentionné dans mon précédent article sur le sujet, qu’il y avait un trop grand écart entre les exercices des quatre premières semaines (des qcm) et celui de la dernière semaine (la réalisation complète d’une page web à partir d’une maquette).

20% des participants ont obtenu une note suffisante (il fallait avoir au moins 75 sur 125) pour réussir le MOOC et obtenir son badge (un « gadget » apparaissant dans son profil utilisateur sur OpenClassrooms indiquant que l’on a réussi le MOOC ;-)).

OpenClassrooms propose également une certification (payante, mais il suffit de devenir membre premium, pour une somme modique, pour pouvoir la passer) : 186 personnes l’ont obtenue (il n’y a aucune indication concernant le nombre de personnes l’ayant passée, les taux de réussite et d’échec…). C’est à la fois peu (de mon point de vue) et important, dans la mesure où il ne s’agit pas à l’heure actuelle d’une certification reconnue dans le milieu professionnel.

Les données concernées ici sont disponibles en open data. Il est possible de les télécharger au format CSV et de les exploiter. Il semblerait d’ailleurs, que Matthieu Nebra, l’auteur de ce MOOC, soit particulièrement intéressé si vous souhaitez exploiter ces données à des fins statistiques… 🙂 Je vais d’ailleurs les récupérer et voir si je peux en faire quelque-chose. 😉

L’article original sur le blog de SimpleIT est ici.

MOOC HTML5 OpenClassrooms

Un MOOC HTML5/CSS3

J’ai participé entre le 23 septembre et le 25 octobre à mon premier MOOC.

Qu’est-ce qu’un « MOOC » me direz-vous ? Il s’agit d’un « Massive Open Online Course », soit un cours en ligne ouvert et massif. En gros, un cours est dispensé en ligne, gratuitement (ou non d’ailleurs) à un grand nombre de personnes simultanément.

Le sujet traité était « HTML5/CSS3 » et était organisé par le site OpenClassrooms (anciennement le Site du Zéro). C’était également le premier MOOC qu’ils organisaient.

Cela fait bien longtemps que j’utilise HTML et CSS dans le développement web, mais je n’avais pas encore eu l’occasion de me pencher sérieusement sur les « nouveautés » amenées par HTML5 et CSS3. Je me suis dit que c’était l’occasion d’apprendre de nouvelles choses en douceur. 🙂

Je me suis donc inscrit et joint aux quelques 18000 participants. Le niveau était assez hétérogène. Il y avait des débutants complets qui découvraient le HTML comme des développeurs expérimentés, des jeunes (voir très jeunes, une douzaine d’années de mémoire) et des plus vieux (je me compte dedans ;-)).

Le principe du MOOC était simple : toutes les semaines, durant cinq semaines, tous les participants inscrits avaient accès à un certain nombre de cours enregistrés en vidéo. La durée de chaque vidéo était relativement courte, ce qui faisait qu’il était possible de les répartir tout au long de la semaine en fonction de ses disponibilités. Chaque participant devait avant la fin de la semaine (avant le dimanche à 23h59) répondre à un questionnaire validant son apprentissage. Il s’agissait d’un QCM reprenant une partie des connaissances censées avoir été acquises durant la semaine. Seule la dernière semaine, un peu particulière, faisait l’objet d’une réelle évaluation avec des travaux pratiques : la réalisation d’une page HTML5/CSS3 à partir de deux maquettes (une classique et une « responsive ») fournies sous forme d’images. Les participants étaient notés toutes les semaines (chaque note comptant pour 25% de la note finale), la note du TP comptant comme un bonus (les règles de notation ont semble-t-il changé plusieurs fois en cours de route). Un forum était à la disposition des participants pour qu’ils puissent échanger sur les cours de la semaine. L’entraide  était la règle sur ce forum et l’ambiance plutôt sympathique dans l’ensemble.

Une fois par semaine, une session était organisée en direct durant laquelle un récapitulatif du cours de la semaine était présenté suivi d’une séance de questions / réponses (assurez-vous bien avant que votre micro fonctionne bien, ça évite de perdre du temps ;-)).

Au bout des cinq semaines, si la somme des notes obtenues est suffisante, un badge « HTML5 » est délivré et apparaît dans le profil. Une certification est également proposée, mais payante cette fois (même si il suffit de prendre un abonnement Premium qui n’est pas très cher).

Le principe est très intéressant. Les vidéos de cours étaient plutôt bien faites, même si un certain nombre de participants ont rencontré quelques problèmes techniques (le lecteur vidéo a été changé plusieurs fois). Il ne faut pas oublier que ce MOOC était le premier organisé par OpenClassrooms. Certaines fonctionnalités ont été développées au cours du déroulement du MOOC (le système de notation et de notification des résultats notamment). Malgré quelques râleurs (à juste titre ou non), l’ambiance générale était plutôt bon enfant. Les plus expérimentés aidaient généralement les débutants sur les forums.

Je n’ai pas appris grand chose durant les trois premières semaines durant lesquelles les bases du HTML et du CSS étaient abordées (non pas que les cours étaient mauvais, au contraire, mais mes propres connaissances allaient déjà bien au delà de leur contenu). J’aurais pu répondre aux QCM hebdomadaires sans regarder les vidéos, même si elles restaient intéressantes.

La quatrième semaine était une introduction aux spécificités de HTML5 et CSS3. Les cours m’ont donc beaucoup plus intéressés et j’ai effectivement appris pas mal de choses, notamment en ce qui concerne les « nouvelles » balises, la structuration sémantique…

La cinquième semaine était très différente. Elle était consacrée entièrement à la réalisation d’une page web à partir d’une maquette fournie sous la forme de deux images en appliquant les principes appris durant les quatre premières semaines. C’était à mes yeux et de loin la semaine la plus intéressante. De la pratique, enfin ! Il m’a fallu une bonne dizaine d’heures pour réaliser la page web : j’ai commencé par la structuration avec les balises sémantiques, et une fois celle-ci complète, j’ai construit la feuille de styles pour la mise en page. La version « responsive » de la feuille de styles a été finalement très facile à réaliser dans la mesure où j’avais respecté les standards dès le début.

Au final, j’ai obtenu le précieux badge (avec la note maximum de 125 ;-)). Outre la satisfaction d’avoir obtenu le badge, je suis content de ce que j’ai appris. C’était une expérience sympathique et je pense que si un sujet intéressant (pour moi) se présente, je m’inscrirai de nouveau.

Néanmoins, ce premier MOOC n’était pas sans défauts (mais comme c’était le premier, ils seront sans nul doute corrigés dans les prochaines sessions). Les cours vidéos étaient plutôt bien faits, mais les QCM hebdomadaires n’étaient sans doute pas suffisants pour évaluer les acquis des participants. Ils étaient cours, et une seule chose à mon avis permet réellement d’apprendre un langage, qu’il soit de description, de mise en page, de programmation… : la pratique. Il n’y a donc pas eu assez de pratique avant la dernière semaine. Un petit TP était bien proposé (semaine 3 je crois), mais il était optionnel. Il y avait donc une énorme différence entre les quatre premières semaines et la dernière, notamment en terme de quantité de travail à fournir. C’est durant cette semaine je pense que les débutants se sont rendus compte du gouffre qu’il y avait entre la théorie et la pratique. Je pense qu’un petit TP par semaine, avec une continuité et une difficulté grandissante, serait plus formateur et rendrait la réalisation de la dernière semaine moins effrayante.

Les sessions hebdomadaires en direct ont été à la fois une source de contentement et de mécontentement. Ces sessions permettaient de bien faire la synthèse de la semaine et en même temps de rendre la formation plus vivante avec la séance de questions / réponses (en passant, il n’est pas utile de demander la parole si c’est juste pour exprimer son admiration envers l’animateur (Mathieu Nebra en l’occurrence), ça évite de faire perdre du temps à tout le monde ;-)). Ça, c’est la partie positive. Le côté négatif, c’est que pour des questions de coût financier, l’accès à la salle virtuelle était limitée à 100 personnes. Sans dire que les 18000 inscrits souhaitaient participer, un grand nombre de personnes se sont retrouvées à la porte. Heureusement, ces sessions étaient enregistrées et il était donc possible de les visionner en différé.

Le dernier point à améliorer peut-être est le système de correction du TP de la dernière semaine. Il s’agit d’un système de correction participatif. Il est évident qu’avec le nombre d’inscrits, même si tous ne rendent pas leur copie, il y en a quand même beaucoup trop pour que la correction soit uniquement du ressort de l’équipe qui organise le MOOC.

Chaque participant, si il voulait voir ses propres résultats validés, devait corriger trois copies. Chaque copie devait normalement recevoir trois corrections de trois correcteurs différents. Une moyenne était ensuite faite. Le problème venait du fait que le niveau des participants était très hétérogène : des développeurs expérimentés côtoyaient des débutants. Les notes pouvaient donc varier beaucoup pour une même copie en fonction du correcteur, même si un barème était fourni et que des consignes de « souplesse » avaient été données aux correcteurs. Cela a fait quelques mécontents. Des participants insatisfaits de leurs notes se sont abondamment exprimés sur le forum, surtout quand le correcteur n’avait laissé qu’une note, sans aucun commentaire qui aurait pu expliquer son choix. Il est clair que certains correcteurs n’ont pas joué le jeu et ont mis des notes farfelues, sans explication, mais cela reste une minorité. Peut-être aurait-il fallu ne pas tenir compte des notes les plus hautes et les plus basses pour effectuer un lissage.  J’ai proposé à un certain nombre de personnes mécontentes sur le forum qu’ils m’envoient leur travail de façon à ce que je le corrige afin de comparer le résultat avec les notes qu’ils avaient eues. J’ai noté les copies que je devais corriger plutôt « sèchement » apparemment. J’ai eu un regard professionnel, les copies étant anonymes, je ne pouvais pas savoir si il s’agissait d’un débutant (auquel on peut pardonner certaines erreurs) ou un participant « avancé ». Néanmoins, à chaque note que j’attribuais, j’ajoutais un commentaire détaillé (même si nous avions pour consigne de faire court), et même mon pseudo, même si la correction devait rester anonyme, de façon à ce que le participant puisse me contacter si il souhaitait une explication plus poussée de la raison de ma notation, ce qui est arrivé. J’ai également, à la demande de plusieurs participants, corrigé des copies envoyées sur le forum. A chaque fois que j’ai corrigé une de ces copies, je suis retombé, à un point près, sur la note obtenue par la correction collective. 🙂

A noter également qu’OpenClassrooms propose une certification HTML5/CSS3, payante naturellement, mais dont le prix reste plus que modique (en fait, il suffit de souscrire à un compte premium pour avoir accès à l’examen). Je ne l’ai pas passée, et ça ne m’intéresse pas à priori. D’une part, je ne pense pas avoir suffisamment d’expérience en HTML5/CSS3 (pas juste HTML/CSS), donc à quoi bon la passer, et d’autre part, je ne pense pas que cette certification soit suffisamment reconnue dans le monde professionnel pour qu’elle ait une valeur quelconque. Peut-être qu’avec le temps, OpenClassrooms deviendra une référence suffisamment solide auprès des professionnels au point que ses certifications soient reconnues, mais pour l’instant, ce n’est pas le cas (ce qui n’enlève encore une fois rien à la qualité des cours proposés).

Pour conclure, l’exercice du MOOC est intéressant. Il permet de suivre un cours structuré et d’échanger avec des formateurs et des participants, mais avec des contraintes moindres que dans le cadre de formations classiques « sur site ». C’est plus vivant et peut-être plus poussé que de suivre un tutoriel « simple ». Il permet d’évoluer à son rythme, en fonction de ses disponibilités. Il doit être un mélange de théorie et de pratique (ce qui a clairement manqué dans ce MOOC).

De nouvelles structures se mettent en place pour l’organisation de cours en ligne. Beaucoup d’universités s’y mettent aussi, adaptant même certaines de leurs formations diplômantes. C’est à la fois un progrès pour ceux qui ne peuvent pas forcément se déplacer ou se libérer totalement le temps d’une formation. Par contre, j’ai peur qu’on y perde un peu en contacts humains.

Quelques compléments :