Meestal beantwoorden mensen de vraag "waarom is wiskunde nodig?" met iets als "gymnastiek voor de geest". Naar mijn mening is deze uitleg onvoldoende. Wanneer iemand fysieke oefeningen doet, weet hij precies welke spiergroepen worden ontwikkeld. Maar gesprekken over wiskunde blijven te abstract. Welke specifieke "spieren van de geest" worden getraind door middelbare school algebra? Het lijkt helemaal niet op echte wiskunde, waarin grote ontdekkingen worden gedaan. Wat levert het vermogen op om de afgeleide van complexe functies te zoeken?
Het onderwijzen van programmeren aan zwakke studenten heeft me geleid tot een nauwkeuriger antwoord op de vraag "waarom?". In dit artikel zal ik proberen dit aan je over te brengen.

Op school wordt er veel tijd besteed aan het transformeren en vereenvoudigen van uitdrukkingen. Bijvoorbeeld: 81×2+126xy+49y2 moet worden omgevormd naar (9x+7y)2.
In dit voorbeeld wordt van de student verwacht dat hij de formule voor het kwadraat van een som herinnerd.

In complexere gevallen kan de verkregen uitdrukking worden gebruikt voor andere transformaties. Bijvoorbeeld:

wordt eerst omgevormd naar

en daarna, met de verduidelijking (a + 2b) != 0, krijg je

Om dit resultaat te bereiken, moet de student drie formules herkennen in de oorspronkelijke uitdrukking en deze vervolgens toepassen:
- Kwadraat van een som
- Verschil van kwadraten
- Vermindering van factoren van een gewone breuk
In de reguliere school hebben we op algebra bijna al onze tijd besteed aan dit soort transformaties van uitdrukkingen. Op de universiteit is er niets wezenlijk veranderd in de hogere wiskunde. We hebben geleerd hoe we afgeleiden (integralen, enz.) moeten nemen en kregen een hoop opgaven. Was dit nuttig? Naar mijn mening wel. Als resultaat van het maken van dergelijke oefeningen:
- is de vaardigheid in het transformeren van uitdrukkingen verfijnd.
- is de aandacht voor details ontwikkeld.
- is er een ideaal gevormd — een beknopte uitdrukking waarnaar gestreefd kan worden.
Naar mijn mening zijn zo'n ideaal, kwaliteit en vaardigheid zeer nuttig in het dagelijks werk van een ontwikkelaar. Immers, het vereenvoudigen van een uitdrukking betekent in wezen het veranderen van de structuur met als doel het begrip te vergemakkelijken, zonder de betekenis aan te tasten. Komt dit je niets bekend voor?
Dit is praktisch de definitie van refactoring uit het gelijknamige boek van Martin Fowler.
In zijn werk formuleert de auteur ze als volgt:
Refactoring (Refactoring) (substantief): een wijziging in de interne structuur van software, bedoeld om het begrip van de werking ervan te vergemakkelijken en de modificatie te vereenvoudigen, zonder het geobserveerde gedrag te beïnvloeden.
Refactoren (Refactor) (werkwoord): de structuur van software wijzigen door een reeks refactoringen toe te passen, zonder het gedrag ervan te beïnvloeden.
In het boek worden 'formules' gegeven die in de broncode herkend moeten worden en regels voor hun transformatie.
Als een eenvoudig voorbeeld geef ik de 'invoering van een verklarende variabele' uit het boek:
if ( (platform.toUpperCase().indexOf(“MAC”) > -1 ) &&
(browser.toUpperCase().indexOf(“IE”) > -1 )&&
wasInitialized() && resize > 0 ) {
// doe iets
}Delen van de expressie moeten in een variabele worden opgeslagen, waarvan de naam de bestemming verduidelijkt.
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) {
// doe iets
}
Stel je iemand voor die algebraïsche expressies niet kan vereenvoudigen met behulp van de formule van het kwadraat van de som en het verschil van de kwadraten.
Denkt u dat deze persoon code kan refactoren?
Zal hij überhaupt begrijpelijke code voor anderen kunnen schrijven als hij geen ideaal van deze beknoptheid heeft gevormd? Naar mijn mening — nee.
Toch studeert iedereen op school, maar slechts een minderheid wordt programmeurs. Is de vaardigheid om expressies om te vormen nuttig voor gewone mensen? Ik denk van wel. Alleen wordt de vaardigheid in een meer abstracte vorm toegepast: je moet de situatie evalueren en een verdere actie kiezen die je dichter bij het doel brengt. In de pedagogiek wordt dit fenomeen genoemd .
De meest markante voorbeelden ontstaan bij huishoudelijke reparaties met handgereedschap, op een 'kolchoz'-manier. Hierdoor verschijnen er die 'trucjes' en lifehacks, waarvan er een wordt afgebeeld op de voorraad. De auteur van het idee had een stuk hout, een draad en vier schroeven. Door zich het patroon van een lampenhouder te herinneren, maakte hij een zelfgemaakte houder.
Zelfs wanneer je met een voertuig rijdt, is de bestuurder constant bezig met het herkennen van patronen in de omgeving en het uitvoeren van de overeenkomstige manoeuvres om op de bestemming te komen.
Wanneer je dood bent, weet je het niet, alleen anderen hebben het moeilijk. Hetzelfde geldt als je de wiskunde niet hebt beheerst...
Wat gebeurt er als iemand de transformatie van uitdrukkingen niet onder de knie heeft? Af en toe geef ik individuele lessen aan studenten die op school moeite hadden met wiskunde. Over het algemeen blijven ze echt vastzitten op het onderwerp lussen. Zodanig dat ze vaak 'algebra' moeten oefenen, maar dan in de programmeertaal.
Dit komt omdat de belangrijkste techniek bij het schrijven van lussen juist is om een groep identieke uitdrukkingen om te zetten.
Laten we zeggen dat het resultaat van het programma er als volgt uit moet zien:
Inleiding
Hoofdstuk 1
Hoofdstuk 2
Hoofdstuk 3
Hoofdstuk 4
Hoofdstuk 5
Hoofdstuk 6
Hoofdstuk 7
Conclusie
Een triviaal programma om dit resultaat te bereiken ziet er als volgt uit:
static void Main(string[] args)
{
Console.WriteLine("Inleiding");
Console.WriteLine("Hoofdstuk 1");
Console.WriteLine("Hoofdstuk 2");
Console.WriteLine("Hoofdstuk 3");
Console.WriteLine("Hoofdstuk 4");
Console.WriteLine("Hoofdstuk 5");
Console.WriteLine("Hoofdstuk 6");
Console.WriteLine("Hoofdstuk 7");
Console.WriteLine("Conclusie");
}Maar deze oplossing is ver verwijderd van de ideale beknopte versie. Eerst moet je de herhaalde groep acties vinden en deze daarna omzetten. Uiteindelijk krijg je deze oplossing:
static void Main(string[] args)
{
Console.WriteLine("Inleiding");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Hoofdstuk " + i);
}
Console.WriteLine("Conclusie");
}Als iemand in zijn jeugd geen wiskunde heeft geleerd, zal die ook dergelijke transformaties niet kunnen uitvoeren. Hij of zij heeft gewoon de juiste vaardigheden niet. Daarom is het onderwerp lussen de eerste hindernis bij het opleiden van een ontwikkelaar.
Soortgelijke problemen ontstaan ook in andere gebieden. Als iemand geen geschikt gereedschap kan gebruiken, kan hij of zij niet praktisch nadenken. Kwaadsprekende zullen zeggen dat de handen niet uit de juiste plek groeien. Op de weg manifesteert dit zich in het onvermogen om de situatie correct in te schatten en een manoeuvre te kiezen, wat soms tot tragische gevolgen kan leiden.
Conclusies:
- School- en universitaire wiskunde hebben we nodig zodat we de wereld beter kunnen maken met de middelen die we hebben.
- Als je studeert en je hebt moeite met het leren van lussen, probeer dan terug te gaan naar de basis — schoolalgebra. Neem een oefenboek voor het 9e leerjaar en maak de voorbeelden eruit.
Bron: habr.com
