mercredi 25 novembre 2020

Une variable pour désigner la figure

Dans le langage de programmation Smalltalk, une variable désigne toujours un objet. La leçon 1 d'introduction utilise une cascade de messages pour éviter l'utilisation d'une variable. Cela permet aux élèves de se concentrer sur les autres nouveautés de l'écriture du code.

La leçon 2 introduit la notion de variable pour désigner la figure géométrique où sont faites les constructions. La déclaration d'une variable est extrêmement simple ; en début de script, il suffit de l’écrire entre deux symboles pipe "|":

| figure |

Pour indiquer à la variable l'objet qu'elle désigne, nous utilisons le symbole d'affectation ":=". L'objet retourné lors de la création d'une nouvelle figure est alors référencé par la variable figure :

figure := DrGeoFigure nouveau.

La variable figure peut ainsi être le receveur des messages compris par toute figure géométrique, à l'instar des messages introduits lors de la leçon 1 :

figure afficherAxes; afficherGrille.
figure segmentDe: 0 @ 0 a: 8 @0.

La leçon introduit comme seules nouveautés la variable et la construction de rectangles, au lieu de triangles. Il y a donc 4 occurrences du message segmentDe:a: 

La production ci-dessous montre les annotations par une élève des coordonnées des sommets des rectangles :

Annotations avec les coordonnées des sommets

Ces annotations ne sont pas différentes de celles produites dans le leçon 1 précédente. Lorsque la figure est composée de deux rectangles, certains élèves ne les distinguent pas toujours. L'utilisation de codes couleurs pour les distinguer les aides à comprendre qu'il y a deux rectangles, et qu'il faut donc compléter le programme avec quatre lignes supplémentaires de construction de segments.

Codes couleurs pour distinguer les rectangles

Sans la mise en évidence des deux rectangles, une élève a dénombré 12 sommets au lieu de 8, et un plus grand nombre de segments à construire (travail d'élève non montré ici).

La variable utilisée dans cette leçon désigne un objet extrêmement complexe pour construire une figure géométrique interactive. Néanmoins cette complexité n'entrave en rien la capacité de l'élève à utiliser cette figure pour faire des constructions. C'est un des principes de la programmation objet par l'encapsulation de la complexité dans des objets. Mise à la portée des élèves de façon pertinente, elle leur permet plus facilement de produire des choses intéressantes. La programmation graphique de Scratch utilise ce même principe, d'ailleurs la version initiale de Scratch fut créé avec le langage de programmation Smalltalk. Adele Goldberg, une des architectes de l'informatique moderne l'explique très bien dans ce passage de cette interview.

Aucun commentaire:

Publier un commentaire