Renvoyez l’ascenseur (2)
Dans un premier épisode paru dans le n° 541 d’Au fil des maths1, Agnès Veyron avait expliqué comment certains concepts informatiques pouvaient nous éclairer dans notre enseignement des mathématiques. Elle poursuit ici cette idée avec l’approche fonctionnelle et le concept d’objet.
Agnès Veyron
@ APMEP Mars 2023
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅♦⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
Dans cette série d’articles consacrée à l’exploration des paradigmes informatiques développés ces cinquante dernières années, nous réfléchissons aux idées que ceux-ci peuvent apporter à l’enseignement des mathématiques aujourd’hui. Dans le premier épisode, nous avons vu le concept de bas-niveau et de haut-niveau en informatique, ce qui nous a conduit à penser que la quête des bases sur lesquelles fonder les mathématiques que l’on enseigne est peut-être vaine et qu’il vaut mieux s’interroger sur le bon niveau d’introduction des notions.
Nous allons étudier ici les problèmes de logique que pose l’enseignement du théorème de Pythagore en Quatrième. Chercher à éliminer une difficulté logique manifeste va nous conduire à ne pas penser notre enseignement comme la construction d’une théorie axiomatico-déductive. L’approche fonctionnelle en informatique et la Programmation Orientée Objet nous donneront alors des pistes pour une autre organisation des mathématiques que l’on enseigne.
Exemple du théorème de Pythagore
Au collège, le chapitre sur le théorème de Pythagore porte sur la connaissance et l’utilisation de trois propriétés :
(P1) « Si un triangle est rectangle, alors l’égalité de Pythagore est vraie. »
(P2) « Si l’égalité de Pythagore est vraie, alors le triangle est rectangle. »
(P3) « Si l’égalité de Pythagore est fausse, alors le triangle n’est pas rectangle. »
Le théorème de Pythagore (P1) et sa contraposée (P3) forment une unité logique, la réciproque du théorème de Pythagore (P2) une autre.
La tentation est grande de présenter cette logique dans notre enseignement et de nommer ces propriétés avec le vocabulaire de la logique.
« D’après le théorème de Pythagore… » ne pose pas de problème.
« D’après la réciproque du théorème de Pythagore… » n’est pas forcément très bien compris, mais est utilisé en général à bon escient par les élèves.
Cependant le concept de contraposée est hors de portée des collégiens et il pose un problème d’enseignement. Ne pas citer la contraposée, dire « d’après le théorème de Pythagore » est plus abordable pour les élèves, mais le manque de rigueur ou l’erreur de logique est manifeste et nous met mal à l’aise en tant qu’enseignant.
Cette présentation logique des propriétés peut entraîner dans l’esprit des élèves des confusions entre les notions d’implication et d’équivalence, d’implication et de déduction ou d’implication et de corrélation. Ces confusions seront très préjudiciables aux élèves au moment où ils auront les moyens d’aborder correctement ces notions.
Analyse du problème
Étudier les liens entre les triangles et l’égalité de Pythagore en utilisant des implications est tout à fait à la portée des élèves de Quatrième.
Les difficultés viennent de deux points :
- la volonté de regrouper les propriétés utilisées en unités logiques ;
- le fait de nommer les propriétés. En effet lorsqu’une propriété est utilisée, il est d’usage de la citer, soit in extenso, soit avec un nom. Le théorème de Pythagore est la première propriété nommée de l’enseignement. Or, le nommage2 masque les implications et il entraîne l’usage de concepts de logique qui ne sont pas du niveau d’élèves de collège : réciproque et contraposée.
Mais, est-ce bien nécessaire au collège de nommer le théorème de Pythagore ? Ne peut-on pas utiliser les trois propriétés (P1), (P2) et (P3) citées plus haut sans aborder les liens logiques qui les unissent ? Que se passe-t-il du point de vue de l’utilisation de ces propriétés ?
Nous avons deux cas d’utilisation distincts.
- Calculer, dans un triangle rectangle, la longueur d’un côté connaissant les deux autres. Dans ce cas, nous utilisons l’égalité de Pythagore.
- Savoir si un triangle est rectangle ou non, connaissant les longueurs des trois côtés. Dans ce cas, nous vérifions l’égalité de Pythagore : si elle est vraie le triangle est rectangle, sinon le triangle n’est pas rectangle.

En ne citant pas le théorème, nous conservons bien nos trois propriétés mais nous ne fonctionnons plus que par déduction, sans nous mettre à un niveau logique inaccessible par les élèves.
L’organisation des propriétés a changé :
Version théorie mathématique | Version utilisateur | ||||||||
---|---|---|---|---|---|---|---|---|---|
Le regroupement se fait suivant un critère logique. Un théorème et sa contraposée sont simultanément vrais. La réciproque est une propriété indépendante. |
Le regroupement se fait suivant les cas d’utilisation. « Le triangle est rectangle » et « Le triangle n’est pas rectangle » sont deux issues du même cas d’utilisation. |
Faisons le lien maintenant avec l’informatique.
Évolution des paradigmes informatiques
Au début, les programmes informatiques étaient développés suivant un paradigme structuré ainsi : on partait des entrées ou données et on progressait étape par étape vers le résultat. On reconnaît là une logique proche de celle de la démonstration en mathématiques.
Avec le temps, les programmes sont devenus de plus en plus longs et complexes et cette logique a montré ses limites : une petite évolution dans le projet pouvait entraîner des reprises de code très conséquentes. De plus, les programmes étaient difficiles à relire donc à maintenir.
Un changement de paradigme a permis le développement des applications complexes que nous connaissons aujourd’hui. On est passé à la Programmation Orienté Objet, dont voici les principes.
Dans une première phase de conception dite d’ « analyse fonctionnelle » , on définit toutes les fonctionnalités utiles à l’utilisateur.
On conçoit ensuite des petits modules informatiques, appelés objets, qui vont avoir la charge d’une ou plusieurs fonctionnalités. Ces objets auront un fonctionnement le plus autonome possible. C’est le principe de Programmation Orienté Objet. Bien sûr, pour assurer le fonctionnement de l’ensemble, les objets interagissent entre eux.
L’intérêt principal de cette approche réside dans le fait que, si un objet ne fonctionne pas, on peut le dépanner ou le reprogrammer sans toucher au reste du code, ce qui facilite à la fois le développement et la maintenance. Je ne ferai pas de parallèle avec les mathématiques sur ce sujet.
De la Programmation Orientée Objet (POO) aux Mathématiques Orientées Objet (MOO)
Que donne le paradigme appliqué à l’enseignement des mathématiques ? Allons-y pas à pas.
- L’analyse fonctionnelle. Nous avons mis à jour plus haut, dans le cas qui nous intéresse, deux types de problèmes à résoudre :
- calculer la longueur d’un côté d’un triangle rectangle connaissant les deux autres ;
- savoir si un triangle est rectangle ou non connaissant les longueurs des trois côtés.
- Les Mathématiques Orientées Objet. Nous allons attribuer ces problèmes à des objets, qui mettront les méthodes à disposition pour les résoudre. C’est le principe de la Conception Orienté Objet : définir des objets à qui on va déléguer la responsabilité d’une partie des problèmes à résoudre.
Point de vocabulaire : objet, classe et instance |
---|
Lorsque je parle de triangle, tout le monde sait ce que je veux dire. « Triangle » peut être vu comme un objet avec ses données et ses méthodes. L’ensemble de tous les triangles est la classe triangle (une classe d’équivalence en fait). Un triangle en particulier est une instance de cette classe (un représentant de la classe). En informatique, on définit des classes, puis on construit des instances de ces classes qui vont être utilisées concrètement dans le programme. Le contexte permet de savoir de quoi il s’agit lorsqu’on parle d’objet ou de classe, ou même de classe d’objets. |
La première méthode calculLongueur() est une méthode de l’objet « Triangle rectangle » . Elle prend en paramètres deux côtés du triangle et renvoie la longueur du troisième.
La seconde estRectangle() est une méthode de l’objet « Triangle » . Elle prend en paramètres les longueurs des trois côtés du triangle et renvoie un booléen : « Vrai » si le triangle est rectangle, « Faux » sinon.
L’usage de ces méthodes n’utilise que des déductions simples. En version présentée aux élèves, cela peut donner :
Méthode 1 : calculer une longueur dans un triangle rectangle |
---|
\(\mathsf{ABC}\) est un triangle rectangle en \(\mathsf{A}\). \(\mathsf{AB}=6\) et \(\mathsf{AC}=8\). Calculer \(\mathsf{BC}\). \(\mathsf{ABC}\) est un triangle rectangle en \(\mathsf{A}\) donc \(\mathsf{BC}^2=\mathsf{AB}^2+\mathsf{AC}^2=100\) donc \(\mathsf{BC}=10\). |
Méthode 2 : savoir si un triangle est rectangle ou pas |
---|
Cas 1 : \(\mathsf{ABC}\) est un triangle tel que \(\mathsf{AB}=6\), \(\mathsf{AC}=8\) et \(\mathsf{BC}=10\). Démontrer que \(\mathsf{ABC}\) est un triangle rectangle. Le plus long côté est \([\mathsf{BC}]\). \[\mathsf{BC}^2=100 \qquad \mathsf{AB}^2+\mathsf{AC}^2=100\] Donc \(\mathsf{BC}^2=\mathsf{AB}^2+\mathsf{AC}^2\), donc le triangle \(\mathsf{ABC}\) est rectangle en \(\mathsf{A}\). Cas 2 : \(\mathsf{ABC}\) est un triangle tel que \(\mathsf{AB}=6\), \(\mathsf{AC}=8\) et \(\mathsf{BC}=11\). Démontrer que \(\mathsf{ABC}\) n’est pas un triangle rectangle. Le plus long côté est \([\mathsf{BC}]\). \[\mathsf{BC}^2=121\qquad\mathsf{AB}^2+\mathsf{AC}^2=100\] Donc \(\mathsf{BC}^2\neq\mathsf{AB}^2+\mathsf{AC}^2\), donc le triangle \(\mathsf{ABC}\) n’est pas rectangle. |
De cette façon, en ne nommant pas le théorème de Pythagore, on évacue les problèmes de logique qui ne sont pas du niveau de tous les élèves de Quatrième et on ne travaille que sur le schéma déductif qui n’est déjà pas si facile à mettre en place. Prendre pour objectif de notre enseignement la construction d’une structure de connaissance de type axiomatico-déductive entraîne des problèmes de logique et de fondement des bases 3.
L’approche fonctionnelle et la Programmation Orientée Objet nous invitent à nous fixer un autre objectif : la construction d’un système d’information4 organisé pour fournir des méthodes de résolution de problèmes. Bienvenue aux « Mathématiques Orientées Objet » ! |
La résolution des problèmes se fait grâce à des méthodes dévolues à des objets, par exemple :
- la méthode
calculLongueur()
appartient à l’objet « Triangle rectangle » ; - la méthode
estRectangle()
appartient à l’objet « Triangle » .
On évite ainsi les concepts de logique avancée : équivalence, réciproque ou contraposée.
Bien sûr pour obtenir une vraie structure, il faudra lier les objets entre eux.
Trois autres concepts intéressants
La MOO comme la POO, c’est l’héritage
Un triangle rectangle possède toutes les propriétés d’un triangle quelconque. En MOO, on dira que la classe « Triangle rectangle » hérite de la classe « Triangle » .
Toutes les méthodes disponibles pour un triangle quelconque seront disponibles pour un triangle rectangle.
En informatique, cette notion d’héritage est un élément structurant très important.
La MOO comme la POO, c’est le polymorphisme
Un objet peut avoir plusieurs méthodes qui portent le même nom mais qui n’ont pas les mêmes arguments. C’est ce que l’on nomme le polymorphisme.
Par exemple, une des méthodes estRectangle()
prend en paramètres les longueurs des trois côtés d’un triangle et utilise l’égalité de Pythagore. Une autre prend en paramètre un dessin du triangle et utilise une équerre.
L’une est rapide, l’autre moins. Mais la mise en défaut de la seconde méthode sur des dessins ambigus obligera à se tourner vers la première.
Classiquement, à l’école primaire, on apprend la géométrie des figures en observant, en mesurant avec des instruments et en comparant des grandeurs. Au collège, on passe à une géométrie des propriétés où, de plus en plus, seuls les raisonnements mettant en œuvre des propriétés démontrées ou admises seront valides, ou tout du moins valorisés. Les méthodes utilisant les instruments disparaissent.
En MOO, la logique change, le nombre de méthodes utilisables pour résoudre un problème augmente au fil des années. C’est la nature du contexte qui conduit à l’utilisation d’une méthode plutôt qu’une autre. Inutile d’utiliser l’égalité de Pythagore pour un triangle qui n’est visiblement pas rectangle.
La MOO comme la POO, c’est aussi l’encapsulation
En POO, les objets possèdent des méthodes mais aussi les données qui lui sont utiles. Celles-ci ne sont pas centralisées dans une base unique que l’on chargerait à l’ouverture du programme.
Quelles sont les données d’un objet ? Prenons par exemple un outil informatique particulier : un logiciel de géométrie dynamique. Celui-ci peut stocker les données définissant un triangle sous la forme des coordonnées de ses sommets dans un repère de référence ou sous la forme des coordonnées d’un des sommets, d’un angle et de deux longueurs. Quelle est la technique effectivement utilisée ? On ne sait pas.
C’est le principe de l’encapsulation des données : pas d’accès aux données hors de l’objet. Un objet n’est connu de l’extérieur que par ses méthodes.
Conclusion
Appliquer les principes de la Programmation Orientée Objet à l’enseignement des mathématiques conduit à se tourner résolument vers la résolution de problèmes en structurant les connaissances en un système d’objets susceptibles de fournir des méthodes pour ce faire.
L’héritage est un des principes structurants.
La structure est souple et évolutive : le polymorphisme permet d’adapter les méthodes en fonction du problème posé et du niveau des élèves.
L’encapsulation conduit à se concentrer sur les méthodes offertes par les objets et l’utilisation de ces méthodes et relègue le problème des fondements et des définitions à plus tard.
Certains objecteront que ce que je propose est un catalogue de méthodes et non pas la construction d’une théorie mathématique, et qu’il est important un moment ou à un autre de donner aux élèves une présentation qui part des prémisses et construit la théorie à l’aide de concepts de logique plus avancés. Pour cela, nous nous intéresserons au concept de patrons de conceptions. Mais avant d’aborder ce point, nous nous intéresserons la prochaine fois aux concepts informatiques de classes abstraites et d’interfaces en explorant l’enseignement des fractions.
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅♦⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
Agnès Veyron est enseignante au lycée Malraux à Montereau-Fault-Yonne. Elle développe le site de calcul mental
Tac Tic Maths
5 avec Anne Bouchard ainsi que de petits utilitaires à destination de ses classes. Elle fait partie de l’équipe de codeurs de notre revue numérique.
- Épisode publié dans Au fil des maths n° 541
.
- En informatique, le nommage est l’action de donner un nom aux objets, variables, fonctions… Ce n’est pas anodin car cela reflète la façon dont on voit le problème. Le nommage fait partie des éléments qui permettent de « raconter » le programme. Plus l’histoire est compréhensible, plus la maintenance sera facile.
- On pourrait rajouter un problème de pertinence pour les élèves : « À quoi ça sert ? »
- En informatique, « Le système d’information (SI) est un ensemble organisé de ressources qui permet de collecter, stocker, traiter et distribuer de l’information, en général grâce à un réseau d’ordinateurs. » (
Wikipédia
). - Vous pouvez lire l’article Tac Tic Maths publié dans Au fil des maths n° 529.
Une réflexion sur « Renvoyez l’ascenseur »
Les commentaires sont fermés.