En général, lorsque l'on pose la question « à quoi sert les mathématiques ? », on vous répond quelque chose comme « un exercice pour l'esprit ». À mon avis, cette explication est insuffisante. Lorsque quelqu'un fait de l'exercice physique, il connaît le nom exact des groupes musculaires qui se développent. Mais les discussions autour des mathématiques restent trop abstraites. Quelles sont concrètement les « muscles de l'esprit » que l'on entraîne avec l'algèbre scolaire ? Cela ne ressemble pas du tout aux véritables mathématiques, où de grandes découvertes sont faites. Que donne la capacité de chercher la dérivée de certaines fonctions complexes ?
L'enseignement de la programmation à des étudiants peu performants m'a conduit à une réponse plus précise à la question « pourquoi ? ». Dans cet article, je vais m'efforcer de vous la transmettre.

À l'école, beaucoup de temps est consacré à la transformation et à la simplification des expressions. Par exemple : 81×2+126xy+49y2 doit être transformé en (9x+7y)2.
Dans cet exemple, on s'attend à ce que l'élève se rappelle de la formule du carré de la somme.

Dans des cas plus complexes, l'expression obtenue peut être utilisée pour d'autres transformations. Par exemple :

se transforme d'abord en

et ensuite, en précisant (a + 2b) != 0, on obtient ainsi

Pour obtenir ce résultat, l'élève doit reconnaître dans l'expression d'origine et ensuite appliquer trois formules :
- Le carré de la somme
- La différence de carrés
- La simplification des facteurs d'une fraction ordinaire
Dans une école ordinaire, presque tout le temps en algèbre, nous avons fait de telles transformations d'expressions. À l'université, en mathématiques supérieures, rien n'a fondamentalement changé. On nous a appris à prendre des dérivées (intégrales, etc.) et nous avons reçu une tonne d'exercices. Est-ce que cela a été utile ? À mon avis, oui. En effectuant de tels exercices :
- La compétence de transformation des expressions s'est perfectionnée.
- L'attention aux détails s'est développée.
- Un idéal a été formé - une expression concise vers laquelle on peut tendre.
À mon avis, avoir un tel idéal, qualité et compétence est très utile dans le travail quotidien d'un développeur. En effet, simplifier une expression signifie essentiellement modifier sa structure dans le but de faciliter la compréhension, sans altérer le sens. Cela vous rappelle-t-il quelque chose ?
C'est pratiquement la définition du refactoring tirée du livre éponyme de Martin Fowler.
Dans son ouvrage, l'auteur les formule de la manière suivante :
Refactoring (refactorisation) (n. f.) : changement dans la structure interne d'un logiciel visant à faciliter la compréhension de son fonctionnement et à simplifier sa modification, sans affecter le comportement observable.
Effectuer un refactoring (refactoriser) (v.) : modifier la structure d'un logiciel en appliquant plusieurs refactorisations sans toucher à son comportement.
Le livre propose des « formules » à identifier dans le code source et des règles pour les transformer.
Comme exemple simple, je mentionnerai « l'introduction d'une variable explicative » citée dans le livre :
if ( (platform.toUpperCase().indexOf(“MAC”) > -1 ) &&
(browser.toUpperCase().indexOf(“IE”) > -1 )&&
wasInitialized() && resize > 0 ) {
// faire quelque chose
}Les parties de l'expression doivent être enregistrées dans une variable, dont le nom explicite sa fonction.
final boolean isMacOS = platform.toUpperCase().indexOf(“MAC”) > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf(“IE”) > -1;
final boolean isResized = resize > 0;
if(isMacOS && isIEBrowser && wasInitialized() && isResized) {
// faire quelque chose
}
Imaginez une personne qui ne peut pas simplifier les expressions algébriques en utilisant la formule de la somme et de la différence des carrés.
Pensez-vous que cette personne pourra refactoriser du code ?
Sera-t-il capable d'écrire un code que d'autres puissent comprendre, s'il n'a pas formé cet idéal de concision ? À mon avis - non.
Cependant, tout le monde étudie à l'école, tandis qu'une minorité devient programmeur. La capacité à transformer des expressions est-elle utile pour les gens ordinaires ? Je pense que oui. Mais cette compétence est appliquée de manière plus abstraite : il faut évaluer la situation et choisir la prochaine action pour se rapprocher de l'objectif. En pédagogie, ce phénomène est appelé .
Les exemples les plus frappants apparaissent lors de réparations domestiques avec des moyens improvisés, de façon « artisanale ». Cela donne lieu aux fameuses « astuces » et « hacks », dont l'un est représenté sur le schéma. L'auteur de l'idée avait un morceau de bois, un fil et quatre vis. Se remémorant le modèle d'un support de lampe, il a fabriqué un support fait maison à partir de ceux-ci.
Même en conduisant un véhicule, le conducteur est constamment engagé dans la reconnaissance de modèles dans le monde qui l'entoure et réalise les manœuvres correspondantes pour atteindre sa destination.
Quand tu es mort, tu ne le sais pas, c’est seulement difficile pour les autres. Il en va de même lorsque tu n'as pas maîtrisé les mathématiques…
Que se passe-t-il si une personne n'a pas réussi à maîtriser la transformation d'expressions ? De temps en temps, je donne des cours particuliers à des étudiants qui ont du mal avec les mathématiques à l'école. En général, ils sont complètement bloqués sur le sujet des boucles. À tel point qu'il faut aborder l'« algèbre », mais dans un langage de programmation.
Cela se produit parce qu'en écrivant des boucles, la principale technique consiste à transformer un groupe d'expressions identiques.
Supposons que le résultat du programme devrait ressembler à ceci :
Introduction
Chapitre 1
Chapitre 2
Chapitre 3
Chapitre 4
Chapitre 5
Chapitre 6
Chapitre 7
Conclusion
Un programme trivial pour obtenir ce résultat ressemble à ceci :
static void Main(string[] args)
{
Console.WriteLine("Introduction");
Console.WriteLine("Chapitre 1");
Console.WriteLine("Chapitre 2");
Console.WriteLine("Chapitre 3");
Console.WriteLine("Chapitre 4");
Console.WriteLine("Chapitre 5");
Console.WriteLine("Chapitre 6");
Console.WriteLine("Chapitre 7");
Console.WriteLine("Conclusion");
}Mais cette solution est loin de l'idéal concis. D'abord, il faut trouver le groupe d'actions répétées et ensuite le transformer. Au final, cela donnera une solution comme celle-ci :
static void Main(string[] args)
{
Console.WriteLine("Introduction");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Chapitre " + i);
}
Console.WriteLine("Conclusion");
}Si une personne n'a pas maîtrisé les mathématiques à son époque, elle ne pourra pas effectuer de telles transformations. Elle n'a tout simplement pas la compétence nécessaire. C'est pourquoi le sujet des boucles est le premier obstacle à la formation d'un développeur.
Des problèmes similaires se posent dans d'autres domaines. Si une personne ne sait pas utiliser un outil à sa disposition, elle ne pourra pas faire preuve de débrouillardise. Les mauvaises langues diront que ses mains ne viennent pas du bon endroit. Sur la route, cela se manifeste par une incapacité à évaluer correctement la situation et à choisir la bonne manœuvre, ce qui peut parfois conduire à des conséquences tragiques.
Conclusions :
- Les mathématiques scolaires et universitaires sont nécessaires pour que nous sachions comment améliorer le monde avec les moyens dont nous disposons.
- Si vous êtes en train d'apprendre et que vous rencontrez des problèmes avec les boucles, essayez de revenir aux bases — l'algèbre scolaire. Prenez un cahier d'exercices de 9e année et résolvez des exemples.
Source : habr.com
