Scala sur coursera

Début septembre, j’ai commencé à suivre des cours en ligne sur les principes de la programmation fonctionnelle avec scala : Functional Programming Principle in Scala (merci à Xavier qui m’avait tweeté l’info 😉 ). J’ai suivi les leçons, fais les exercices, rendu les projets,… je suis donc redevenue étudiante le temps de ce programme, qui a pris fin il y a 2-3 semaines.

Retour sur ces cours…

Scala ? Pourquoi ?

http://www.scala-lang.org/

Scala est un language de programmation multi-paradigme (orienté objet et fonctionnel) crée en 2003 par Martin Odersky et une équipe de chercheurs de l’école polytechnique fédérale de Lausanne (EPFL). Scala est exécutable sur la JVM java, c’est ce point là qui a suscité mon interêt. Il est apparement possible d’utiliser des librairies existantes de java dans des programmes scala tout comme il est serait possible d’invoquer du code scala en java. Je n’ai pas encore tester ça pour l’instant, mais ça ne saurait tarder.

Ce qui m’a interessé dans l’intitulé du cours, c’est me remémorer les principes de la programmation fonctionnelle, mais surtout c’était de découvrir scala. J’avais vu passé des articles expliquant que scala était de plus en plus utilisé par les grands du web

Je voulais donc voir, ou au moins entrevoir, ce qu’offre ce fameux scala.

Gratuit ?

Oui il s’agissait bien de cours gratuits. Martin Odersky (avec sa société Typesafe) ont mis ces cours à disposition pour diffuser le language de façon massive. C’est donc une sorte d’opération marketing déguisée. J’ai bien l’impression qu’ils ont atteint leurs objectifs, j’ai lu qu’il y avait environ 50 000 inscrits, je trouve ça vraiment très impressionnant !

Coursera ?

Les cours ont été mis à disposition sur coursera.org, je ne connaissais pas du tout ce site, et ça a été une chouette découverte. Il s’agit d’une plateforme d’éducation en ligne où on peut retrouver des cours en partenariat avec des universités, principalement américaines, comme les universités de Stanford, Princeton, Washington,…  Il n’y a pas que de l’informatique sur cette plateforme, on peut aussi y trouver des cours de biologie, de génétique, de finance, de mathématique, … il y en a pour tous les goûts !

https://www.coursera.org/

Coursera a été fondé en Californie par 2 professeurs d’informatique Daphné Koller et Andrew Ng. L’entreprise semble super récente, elle aurait eu l’aide d’investisseur en avril 2012. Apparement tous les programmes dispensés sur Coursera sont gratuits pour l’instant, je ne connais pas le business plan de cette société (allez voir http://en.wikipedia.org/wiki/Coursera#Business_model pour plus d’infos)

La plateforme fournit aux professeurs des espaces sur lesquels ils peuvent stocker les vidéos et les slides des cours, les sujets de projets, un forum, des pages personnalisés un peu comme des pages de wiki,… La plateforme et les cours sont uniquement en anglais.

Page d’accueil pour le programme Scala sur Coursera

Comment ça s’est passé ?

Chaque semaine de nouvelles vidéos étaient mises à disposition. Le professeur qui dispense l’ensemble des cours est Martin Odersky, lui-même.

Martin Odersky dans une de ses vidéos

Les vidéos ont été dévoilées progressivement. On y voit Martin Odersky passer les slides, mettre des annotations sur celles-ci ou encore écrire et exécuter du code pour montrer des exemples.

A la fin de chaque semaine, il y avait un exercice à rendre. C’est dans la façon où le code rendu a été évalué que j’ai été bluffé. Il suffisait d’appeler la commande

submit mail password

dans la console (avec l’outil sbt), et hop le projet était soumis pour évaluation. Quelques minutes plus tard on pouvait retrouver le résultat, avec quelques explications sur le pourquoi on a pas eu 10/10, il s’agissait en fait d’une partie des logs d’exécution de l’évaluation.

Pour ce qui est de la notation, il y avait une date de rendu « soft » et une date « hard ». Si on rendait après la date soft, on perdait des points pour cause de retard, et après la date hard on ne gagnait plus aucun point. C’est dire qu’il fallait être studieux pour rendre dans les temps.

Il était possible de soumettre autant de fois que l’on voulait, la meilleure note étant celle prise en compte à la fin.

Ah j’ai failli oublier, pour écrire du scala j’ai utilisé une version d’Eclipse spécialement packagée pour scala, embarquant des plugins et des vues spécifiques. J’ai utilisé cet IDE pour tous les projets. Dans les fichiers de type worksheet, l’évaluation des fonctions se faisait directement dans l’éditeur, ce qui était assez surprenant lors des premières utilisations.

Ce que ce cours m’a apporté…

  • Un regard neuf sur ma façon de développer. Dans ces cours, l’accent était mis sur le style du code (http://www.scalastyle.org/). Du coup maintenant, je fais plus attention : suppression des accolades inutiles, essayer de faire plus de oneliner, …
  • Ce flashback étudiant m’a fait retrouver l’envie d’apprendre et de chercher partout. Le forum disponible sur coursera était très actif.
  • J’ai découvert scala :)
  • Nouvel angle de reflexion sur les developpements que je vais faire prochainement.
  • J’ai vraiment eu le sentiment de progresser. Les exercices étaient bien trouvés. A la fin des 7 semaines, refaire les premiers exercices ne me pose pas de problème, c’est que j’ai vraiment retenu des choses 😉

Parce qu’il y a toujours des mais…

  • Le rythme des cours était très soutenu. Il fallait vraiment réserver du temps pour ça chaque semaine. Pas toujours facile d’intégrer ces cours dans sa vie quotidienne, vous vous doutez qu’il y a eu des soirs où j’ai décallé mon rendez-vous avec mon oreiller :)
  • Je ne sais pas si c’est moi, mais la difficulté n’était pas forcément crescendo, j’ai trouvé le dernier projet plus « facile » que le projet précédent où je me suis bien cassé la tête.
  • La reflexion était très (trop ?) guidée pour les projets à rendre. J’imagine que ça simplifie le passage du robot de notation et que ça oriente les choses que le professeur veut valider comme étant acquises, mais j’aurai peut-être préféré définir les structures de données moi-même par exemple.
  • Lors de la soumission d’un projet, lorsqu’il y avait des soucis de performance, il m’était difficile de comprendre pourquoi et ce qui a provoqué l’erreur.
  • Le sujet était bien d’apprendre la programmation fonctionnelle avec scala, mais j’esperais quand même avoir au moins un exemple de scala intégré dans un programme java s’exécutant dans un contexte plus « réaliste », c’est à dire se comportant comme une vraie application avec des interactions avec l’utilisateur.

En conclusion…

Je suis très fière d’être venue à bout de ce programme. D’après le barême de notation, j’ai « validé » les cours ! (il fallait obtenir plus de 48 points sur 80). Je devrais donc recevoir bientôt un courrier de Suisse contenant le certificat \ o / J’espère qu’il sera signé de la main de Martin Odersky 😉

Et vous ?

Pour ceux qui sont interessés, les cours ainsi que les projets restent accessibles, mais le fait de rendre les exercices même sans erreurs ne vous permettra plus d’obtenir de certficat, time is up ! Mais au delà de ce bout de papier, les resources mise à disposition pour ce programme sont vraiment très nombreuses et interessantes.

Il se pourrait que l’an prochain un nouveau programme lié à scala soit lancé, il ne faudra donc pas rater le coche :)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>