Rapport exercice 3 : JavaScript


Objectifs de l'exercice

Comme tout exercice qui porte sur l'acquisition d'un langage (html, php,…), l'objectif fondamental n'est pas, à mes yeux, d'en maîtriser tous les "mots" (formules, codes,…) mais plutôt la grammaire et la syntaxe, c'est-à-dire la manière dont les "mots" s'agencent entre eux. Cela afin d'être à même de lire et de comprendre une "phrase". Tel était le premier objectif de cet exercice sur JavaScript. Subsidiairement, il me semble également important de se rendre compte du potentiel d'un langage, de savoir ce que l'on peut faire et ce que l'on ne pas. Cela a constitué un second objectif. 

Bien entendu, ces objectifs relèvent purement de la technique. Les contraintes de temps m'ont obligé à mettre de côté les aspects pédagogiques (construction des questions et des réponses du QCM) et ergonomiques (organisation de la page). Quant au contenu, ici encore, une réelle réflexion a dû être abandonnée. Notons que l'objectif du cours n'est pas de développer de véritables projets pédagogiques, mais de se familiariser avec un langage. Dans ce sens, tous les aspects non-informatiques sont subsidiaire. Toutefois, j'ai quand même tenté de tenir compte des remarques (sur le contenu) faites à mon précédant dispositif (programmation en php).
 

Difficultés rencontrées

Pour atteindre mes objectifs, je ne possédais que les transparents du cours. En effet, ayant manqué la présentation lors de la deuxième période staf, je suis entré dans le monde de JavaScript sans les commentaires avisés du professeur. Il m'a donc été très difficile, dans un premier temps, de comprendre quelque chose. Quelques remarques ou conseils ont  toujours constitué à mes yeux des portes d'entrée efficaces lorsqu'on aborde un nouveau domaine. 

Une fois cette difficulté surmontée, c'est lors de l'écriture du code que les vrais problèmes sont apparus. Lire et comprendre la théorie est une chose, l'appliquer en est une autre. Enormément d'implicites m'ont fait perdre des heures de travail.
 

Réflexions et références

L'ajout de l'aide reste peut être utile dans un tel cas, même si dans mon exemple, le but principal est simplement de montrer que cela est techniquement possible. Il m'a semblé intéressant, d'un point de vue pédagogique (et c'est là peut-être ma seule réflexion sur le sujet), de donner des feedback immédiat aux réponses des sujets. Cela répond en outre aux remarques faites sur mon exercice précédant (programmation en php). Dans certaines situation d'apprentissage, ce type de feedback s'avère assez efficace (exercice de renforcement). Il a donc fallu trouver dans JavaScript, une manière de coder l'information qui me permette de le faire. La solution choisie (afficher les feedback dans des champs "textarea") constitue un bon compromis de temps et d'efficacité. Cependant, cette solution comporte quelques limites :
  • possibilité pour le sujet d'écrire dans ces champs : cela s'avère techniquement possible, mais peu envisageable. De plus cela n'endommage en rien le dispositif;
  • possibilité pour le sujet de changer de réponse : même si les feedbacks ont été pensé afin que le sujet connaisse la bonne réponse après le premier choix, celui-ci peut toujours par curiosité, changer de réponse et sélectionner la correcte. De cette manière, le feedback général généré en php (exercice précédant) perd sa de valitidé. Il eu fallu trouver une solution qui vérouille le choix du sujet, ne lui permettant plus de changer de réponse;
  • impossibilité de mettre en forme le texte : il aurait été interessant de pouvoir mettre la bonne réponse en vert et les mauvaises en rouge par exemple. Mon dispositif ne le permet pas. En effet, les tags html s'affichent comme du texte au lieu d'être interprétés;
  • incompatibilité avec les questions type "menu déroulant" : il s'est avéré que ce type de question (avec réponse dans des menus déroulants) ne permettait pas d'afficher les réponses dans les "textarea". Probablement que le "Event Handler" onClick est inapproprié, puisque le sujet ne clique sur rien.
Sans doute existe-t-il des solutions techniques à chacun de ses points. Pour les questsions de type "menu déroulant", quelque heures de recherche m'ont suffit à préférer les supprimer. Une fois de plus le manque de temps ne m'a pas permis de trouver une réelle solution à tous ces problèmes. 

Pour trouver le code le plus approprié et l'écrire, mes principales sources d'information furent les guides et les exemples on line. Mais j'ai bien plus appris en une heure accompagné d'un assistant (Cyrile Roiron) que seul avec les guides pendant plusieurs jours. Durant cette fameuse heure, j'ai appris à distinguer les concepts d'objet, de méthode, de propriété, d'argument, d'événement puis à les assembler entre eux avec la ponctuation adéquate. En somme, mon premier objectif était atteint. A la suite de quoi, tout me paraissait plus clair et les heures investies par la suite furent bien plus rentables. 

D'un autre côté, je pense que si cette heure avec Cyrile fut si productive, c'est également parce que j'en avais passé plusieurs à essayer de comprendre par moi-même et ainsi je pouvais facilement pointer mes difficultés et ces explications se révélaient tout à fait accessibles. 

En sommes, l'idéal d'apprentissage, pour un novice, est de faire des allers et retour entre les manuels et une personne experte, avec au départ plus de temps passé en compagnie de l'expert puis, plus l'apprentissage avance, plus le rapport de temps (expert-manuel) s'inverse. 

En fin de compte, le résultat n'est pas très représentatif des connaissances acquises. En effet, on n'y voit pas vraiment le potentiel de connaissance, qui constitue en quelque sorte le second de mes objectifs.

 

Home | Staf