Je me suis agacé l'autre jour avec mes élèves, pour essayer de leur expliquer pourquoi le code qu'ils copiaient placidement depuis ChatGPT était de la merde par rapport à ce que j'essayais de leur faire faire.
Le contexte
Exercice de codage en PHP. Les élèves doivent réaliser un formulaire sur une page web présentant des codes couleur que l'on retrouve sur une résistance. A partir de ces couleurs on peut en déduire les caractéristiques de la résistance avec un très simple calcule. Donc les élèves doivent faire 3 sélecteurs de couleur, un bouton "Envoyer" et la page se recharge et affiche l'impédance de la résistance correspondante.
Ce que ChatGPT leur a donné
Ils ont été plusieurs à demander à l'IA générative la réponse au lieu d'essayer de le faire. Soit, il faut enseigner avec son temps, ma seule exigence est qu'ils comprennent ce qu'ils copie/colle. Sauf que ce qu'ils ont obtenu est un code parfaitement fonctionnel mais absolument idiot. Au delà d'une complexité inutile que les élèves sont bien incapables de comprendre à cette étape du cours, voilà la logique proposée dans le code généré:
- On fabrique un tableau de couleur, et pour chaque couleur on fait correspondre un numéro de couleur (tableau de tableau donc à 2 dimensions)
- On fabrique une interface avec des sélecteurs affichant la couleur comme identifiant du label de couleur
- Lorsque le formulaire est posté, le code cherche à partir du nom de la couleur, le numéro de la couleur en utilisant une fonction qui parcours tous le tableau de couleur
- Une fois le numéro de la couleur récupéré, le calcule est effectué
Voici ce que j'essayais de leur faire faire:
- On fait un tableau de couleur (à une seule dimension, puisque la position de la couleur dans le tableau correspond à son numéro)
- L'interface utilise la position de la couleur dans le tableau pour définir ce nombre comme identifiant du label de la couleur
- Lorsque le formulaire est posté, on récupère directement les numéros de couleur et l'on peut faire le calcule directement
Pédagogiquement parlant, il faut simplifier au maximum pour que les concepts soient acquis, donc éviter de superposer des complexités inutiles, or là pour moi, je me retrouve avec un code plus compliqué que les élèves n'ont pas le niveau de comprendre (tableau associatif multidimensionnel, fonction) . Mais en plus le code fournis par ChatGPT est idiot:
- On n'utilise jamais un libellé comme code d'une valeur, car sinon il est impossible dans le future de traduire l'interface dans une autre langue.
- C'est une catastrophe au niveau performance de parcourir un tableau pour retrouver une valeur dedans, surtout si l'on peu s'en passer.
- Le code produit par ChatGPT est environ 4 fois plus long, pour aucune plus value fonctionnelle : il n'est pas plus fiable, pas plus clair, pas plus performant, pas plus évolutif.
En théorie, les IA génératives sont capables de produire du code de bonne qualité. Du coup je suis en train de m'inquiéter de ce que vont nous produire comme logiciel la prochaine génération de développeurs. Si au moins la complexité du code fournis avait un intérêt, mais là c'est simplement de la merde.

J'ai acquis dernièrement un petit boîtier AndroidTV afin de disposer d'un écran supplémentaire connecté à ma Freebox, sans avoir à louer tous les mois un boîtier à Free et surtout, pour pouvoir m'en servir en dehors de mon logis.
Fonctionnement


Derniers commentaires