Suite et fin de mon compte-rendu sur le cours d’introduction à la programmation fonctionnelle.

Cours de la semaine

Pas de cours cette semaine, uniquement un devoir, comportant une seule question plutôt complexe (mais avec un nombre quasi illimité d’essais possibles !) et un lab, proposant une partie intéressante sur un type particulier d’objets, les rose tree et une autre partie encore (et toujours) sur les monades.
Autant dire que pour moi qui n’ait pas vraiment creusé le sujet cela a été difficile, tout autant que les nombreux exercices déjà proposés sur le sujet lors des deux ou trois dernières semaines du cours.

Avis sur le cours

Cette semaine étant la dernière, l’heure du bilan est arrivée.
Comme cela est certainement déjà apparu dans mes précédents billets sur le cours j’ai un avis mitigé sur celui-ci.

Commençons tout de même par les points positifs :

  1. Découverte du langage Haskell que j’ai trouvé très intéressant, étant purement fonctionnel cela permet de mettre certains autres aspects de côté. Scala par exemple s’en inspire beaucoup il me semble mais lui ajoute tous les concepts des langages orientés objets, ce qui peut compliquer son appréhension.
  2. Découverte très approfondie de la programmation fonctionnelle (trop peut-être). Ce cours était à mon avis clairement plus avancé que celui proposé par Coursera, parfois un peu trop alors que le mot “introduction” était le premier mot du titre du cours !
  3. Certains exercices très intéressants (les labs), malheureusement trop peu à mon goût :disappointed:

Du côté des points négatifs j’ai relevé les points suivants :

  1. Manque de pédagogie du cours. Contrairement au cours proposé par Coursera le manque de pédagogie m’a semblé assez flagrant. Le cours est entièrement basé sur le livre Programming in Haskell qui en manque lui aussi. Le contenu est bon mais est présenté de manière assez “brute” ce qui peut décourager.
  2. De nombreux exercices assez fastidieux à résoudre. L’objectif avoué était “d’obliger” les étudiants à saisir du code avant de répondre aux questions. L’intention est certes louable mais se résume la plupart du temps à faire le moine copiste jusqu’à trouver la bonne réponse. Personnellement je trouve difficile de recopier “bêtement” quelque chose et d’y réfléchir en même temps.
  3. La plate-forme sur laquelle est basée edX n’est pas au niveau de celle proposée par Coursera. Par exemple l’ergonomie est moins bonne, la plate-forme n’affichant pas clairement l’état d’avancement (vidéos regardées, exercices complétés.). Le forum est également assez pauvre en fonctionnalités alors qu’il existe déjà de nombreuses solutions !

Pour conclure je reste sur une petite déception quant à ce cours.
Peut-être mes attentes étaient trop hautes, le sujet et le professeur Erik Meijer étant tous les deux à la mode.

Ce cours m’a au moins permis de renforcer mon a priori positif sur la programmation fonctionnelle, découvrir Haskell et m’encourager à approfondir les deux sujets. Pour cela je compte sur les livres Functional Programming in Scala et Learn You A Haskell.

Happy hacking :wink: