Thursday, July 4, 2013

Coursera

J’ai découvert il y a quelque temps le site Coursera. C’est un site proposant des cours en ligne pour des milliers d’utilisateurs (Mooc). Il y a principalement des cours d’informatiques donnés en anglais, mais pas seulement. Le format des cours n’est pas le même pour tous les cours car coursera fourni la plateforme et a des partenariats avec de nombreuses universités. Mais globalement il s’agit de vidéos accompagnées de quizz. Pour l’informatique il y a souvent des projets de programmation et il y a également parfois des rapports qui sont évalués sur le principe du peer-review (chaque étudiant note d’autres étudiants). Le rythme est hebdomadaire avec des deadlines pour chaque rendu, mais il existe aussi des cours dont le rythme est libre. Pour la plupart des cours, il est possible d’obtenir à la fin un certificat attestant la réussite du cours.

J’ai déjà suivi 4 cours et je suis en train d’en suivre un 5e. Voici mes impressions, je parlerai ensuite spécifiquement de chacun des cours que j’ai suivis.

Globalement il y a de très bons cours, mais il y en a aussi qui ne correspondent pas du tout à ce que j’en attendais. Il ne faut pas hésiter à s’engager dans de nombreux cours et à les abandonner rapidement si ce n’est pas ce que vous attendiez. Je ne sais pas quelle est la valeur des certificats décernés. Pour les cours que j’ai suivis, je pense que tout étudiant sérieux peut obtenir sans problème le certificat. Cependant le peu de stat que j’ai pu trouver montre qu’il y a vraiment peu (je dirais 20%, mais j’ai vraiment peu de données) de personnes qui valident le cours. Toujours est-il que c’est une bonne occasion d’apprendre de nouvelles choses. La majorité des cours sont donnés par des universités américaines, donc le style est assez différent de ce que j’ai pu voir en France. Finalement le point le plus sujet à débat est celui des deadlines et du rythme imposé (si le certificat ne vous intéresse pas, il est toujours possible d’aller à son rythme). D’un côté, cela permet de rester motivé et empêche de procrastiner, cela permet également d’avoir des forums très actifs. De l’autre, ce n’est pas forcement compatible avec votre emploi du temps. Les cours étant en moyenne sur 10 semaines, c’est vite fait qu’un projet tombe pendant vos vacances, un déplacement ou une période de rush. L’autre gros point négatif est que les cours ne sont disponibles qu’à la date indiquée et il est difficile de prendre un cours en marche. En même temps, vu le nombre de cours, j’ai toujours trouvé en permanence un cours qui m’intéressait. Néanmoins si vous trouvez cette contrainte disqualificative Udacity un autre site de Mooc très connu répondra peut-être plus à vos attentes.

Voici donc les cours que j’ai suivis pour le moment :

  • Compilers Très bon cours, qui couvre les bases de la compilation (lexing, parsing, typechecking, génération de code, optimisations standards, allocation de registre et garbage collection). Les quizz étaient très bien faits et permettaient de bien comprendre le détail du cours. En revanche les questions optionnelles avec dedulcet (un outil pour faire des preuves formelles) étaient pénibles. Il y avait également un projet bonus pour écrire un compilateur en c++ ou en java. J’ai seulement fait une partie de ce projet, les indications et le matériel fourni étaient bons, mais cela demandait trop de travail et la dernière deadline tombait très mal dans mon emploi du temps.

  • Social Network Analysis Un cours dont le sujet est très intéressant, surtout compte tenu de l’actualité. Il couvre également les outils basiques pour l’analyse de réseaux sociaux avec R, Python (je ne connaissais aucun de ces langages avant ce cours), mais aussi Gephi. Il y avait de nombreux exemples avec netlogo, ce qui permettait de tester (via des applis java) ce qui était expliqué en cours. Cependant parfois les réponses aux quizz dépendaient pas mal de l’interprétation. Nous avons vu beaucoup de choses, mais j’ai plus eu l’impression de suivre un blog de vulgarisation que de suivre un cours. Je me demande si le cours Networks: Friends, Money, and Bytes n’aurait pas été mieux.

  • Machine Learning Ce cours est considéré comme une référence pour le machine learning, et effectivement il est excellent. Le meilleur cours que j’ai suivi et je vous le recommande chaudement. Seul regret, les applications de programmation sont en Octave, j’aurais préféré R.

  • Introduction to Data Science Je suis assez déçu par ce cours, la dernière partie sur la visualisation était plutôt mauvaise, et la partie sur l’analyse de données (du machine learning en fait) était forcement moins bonne que celle du cours précédent. Cependant pour ceux ne suivant pas le cours de machine learning c’était une très bonne introduction et la partie sur le Big Data (via Hadoop, MapReduce…) était bien. On a pu simuler des algo de MapReduce avec Python pour bien comprendre le paradigme. Et en utilisant AmazonWebService, j’ai pu traiter un TB de donnée en quelques heures (et quand même ça en jette). Point bonus, c’est comme ça que j’ai découvert Kaggle dont je reparlerais sans doute un jour. Finalement un bilan mitigé, mais surtout dû aux circonstances.

  • Startup Engineering Je suis en train de suivre ce cours. Il parait prometteur pour voir les bons outils de développement et comment s’en servir. Pour le moment screen (que je ne connaissais pas et qui comble vraiment un manque), utilisation du cloud amazon et d’heroku. Le matériel fourni est excellent, ce qui rend les vidéos moins intéressantes. J’ai appris pas mal de choses bêtes, mais très utiles sur Emacs, Git et Bash que j’utilise pourtant pas mal. Je regrette de ne pas avoir eu ce cours quand j’ai commencé à coder et je suis impatient de voir la suite.

Comme vous pouvez le constater, je trouve que les cours de Stanford sont d’excellentes qualités, mais cela est peut-être simplement dû au fait qu’ils ont déjà été proposés plusieurs fois. Il y a donc déjà eu plusieurs retours, et je pense que cela a pas mal contribué à améliorer ces cours.

Et vous, que pensez-vous de ces Mooc, avez vous des cours à conseiller ?

No comments:

Post a Comment