Un document d’introduction au langage JavaScript a été distribué aux élèves quelques jours avant le TP ; le voici au format pdf (cliquer-droit pour le télécharger) :
Et voici le sujet du TP, avec des espaces pour mettre les réponses et le nom de l’élève :
Déroulement du TP
Plusieurs élèves comprennent qu’il s’agit de recopier dans l’éditeur de CaRMetal, tous les scripts qui sont dans les cadres, et ne lisent pas le reste. Ceux-là sont très rapides mais ne font pas tout le TP...
La première question (afficher une variable qui a été créée mais pas affectée) pose problème, le mot « undefined » n’évoquant pas grand-chose aux élèves [3].
Le TP se corse avec les modifications de variables, même si la notation « = » est plutôt bien comprise par les élèves. Par exemple, avec
var x=7 ;
x=x*x ;
Prompt(x) ;
qui implémente la suite d’instructions suivante :
- $x \leftarrow 7$
- $x \leftarrow x^2$
- afficher $x$
s’il est évident pour tout le monde qu’après la première ligne, est égal à 7, trois élèves n’ont pas immédiatement perçu qu’ensuite x était modifié, et plusieurs autres ont eu du mal à saisir que x était remplacé par son carré (c’est le même x qui intervient comme facteur à gauche et à droite du « * », mais pas le même x à gauche du « = »). En fait on entre dans le domaine de la logique temporelle puisque la proposition « x=49 » est initialement fausse et finalement vraie.
Au début de la deuxième page, est introduite la notation « x++ » pour l’incrémentation. Celle-ci a, de façon quelque peu rassurante pour moi, posé problème : dans x=x+1
il y a un verbe « on met dans » représenté par le signe « = » (le sujet étant x+1 et le complément x). Mais la notation « x++ » ne montre pas de verbe évident ; aussi ai-je vu des « x=x++ » ou « x++=1 » somme toute très logiques. La plupart des élèves ont effectivement appelé « l’examinateur » comme c’était demandé, mais plusieurs ne l’ont fait que lorsque je leur ai montré la partie du TP non faite...
L’exercice
var x=5 ;
x=2*x ;
x=x-3 ;
x=x*3 ;
m’intéressait particulièrement car il est pratiquement indépendant de la machine (et peut donc être l’objet d’un sujet de DS). Les plus rapides ont commencé par protester « ce programme ne fait rien », ce qui est faux. Avant de leur suggérer d’ajouter quelque chose pour voir ce qu’il fait, j’ai proposé qu’ils repassent le film des évènements, mentalement, avant de vérifier avec un Prompt(x)
leur conjecture.
Le dernier exercice est très analogue au précédent, sauf qu’il comprend la litigieuse notation x++
hors programme. Mais l’élève le plus lent a complété le TP en moins d’une heure.
La question finale est à rédiger à la maison et avait été précédée la veille de deux exercices sur les équations ($x^2=49$ et $x^2+3=3$).
Environ la moitié des élèves ont montré un énorme intérêt pour ce sujet, et pour les occuper pendant que les plus lents finissaient le TP, je les ai envoyés sur la présente rubrique, où ils ont consulté le document « CarScripts », et copié-collé quelques exemples. C’est visiblement la géométrie dynamique qui les a le plus intéressés.
Résultats
Outre une élève absente pour cause de grippe A, plusieurs élèves ont décidé de sécher le TP, et n’ont pas réalisé qu’on pouvait le faire à la maison sans CaRMetal, sauf la première question. À part cela, les notes vont de 14 à 20, selon la réussite de la résolution de l’équation $x=x^2$. Il y a
- ceux qui ont écrit un programme JavaScript pour tester l’égalité entre x et x*x
- ceux qui ont trouvé que seuls 0 et 1 sont solutions, sans réussir à justifier que ce sont les seules
- ceux qui ont factorisé $x-x^2$ sans savoir quoi faire après
- et un seul qui est arrivé au bout de la résolution de cette équation.
Voici le diagramme en bâtons des notes obtenues à ce TP :

La moyenne du TP est 14,2 ce qui est une plutôt bonne manière de commencer l’année !
Transformation de l’essai
Ce TP a naturellement mené à un contrôle (pas uniquement sur la programmation) dont voici le sujet :
La question sur la programmation était notée sur 6 points et voici le diagramme en bâtons des notes sur 6 :

Avec une moyenne de 4,8 sur 6 parmi les 26 élèves présents (celle qui a la grippe A est toujours malade...)
Le TP suivant (numéro 2) | Le TP 3 |
Commentaires