In der Regel wird die Frage âWarum ist Mathematik wichtig?â mit etwas wie âgeistigem Trainingâ beantwortet. Meiner Meinung nach ist diese ErklĂ€rung unzureichend. Wenn jemand körperliche Ăbungen macht, kennt er die genauen Bezeichnungen der Muskelgruppen, die dabei trainiert werden. Doch die GesprĂ€che ĂŒber Mathematik bleiben zu abstrakt. Welche konkreten âGehirnmuskelnâ werden in der Schule durch Algebra trainiert? Sie Ă€hnelt doch gar nicht der echten Mathematik, in der groĂe Entdeckungen gemacht werden. Was nĂŒtzt das Wissen, wie man die Ableitung komplizierter Funktionen sucht?
Das Unterrichten von Programmierung bei schwachen Studenten hat mich zu einer prĂ€ziseren Antwort auf die Frage âWarum?â gebracht. In diesem Artikel werde ich versuchen, diese Antwort mit Ihnen zu teilen.

In der Schule wird relativ viel Zeit mit der Umformung und Vereinfachung von AusdrĂŒcken verbracht. Zum Beispiel: 81Ă2 + 126xy + 49y2 sollte umgeformt werden zu (9x + 7y)2.
In diesem Beispiel wird vom SchĂŒler erwartet, dass er sich an die Formel des Quadrats der Summe erinnert.

In komplizierteren FĂ€llen kann der erhaltene Ausdruck fĂŒr andere Umformungen verwendet werden. Zum Beispiel:

wird zunÀchst umgeformt in

und dann, mit der EinschrÀnkung (a + 2b) != 0, erhalten wir so

Um ein solches Ergebnis zu erzielen, muss der SchĂŒler im ursprĂŒnglichen Ausdruck drei Formeln erkennen und dann anwenden:
- Quadrat der Summe
- Differenz der Quadrate
- VerkĂŒrzung von Faktoren einer gewöhnlichen Bruchzahl
In der regulĂ€ren Schule haben wir fast die ganze Zeit in der Algebra mit solchen Umformungen von AusdrĂŒcken gearbeitet. An der Hochschule hat sich in der höheren Mathematik nicht viel geĂ€ndert. Man hat uns erklĂ€rt, wie man Ableitungen (Integrale usw.) nimmt und eine Menge Aufgaben gegeben. War das nĂŒtzlich? Meiner Meinung nach â ja. Durch die DurchfĂŒhrung solcher Ăbungen:
- Wurde die FĂ€higkeit zur Umformung von AusdrĂŒcken geschĂ€rft.
- Die Aufmerksamkeit fĂŒr Details hat sich entwickelt.
- Ein Ideal wurde geformt â ein prĂ€gnanter Ausdruck, nach dem man streben kann.
Meiner Meinung nach ist das Vorhandensein eines solchen Ideals, dieser QualitĂ€t und FĂ€higkeit im tĂ€glichen Arbeit eines Entwicklers sehr nĂŒtzlich. Denn ein Ausdruck zu vereinfachen, bedeutet im Grunde, seine Struktur zu verĂ€ndern, um das VerstĂ€ndnis zu erleichtern, ohne den Sinn zu berĂŒhren. Erinnern Sie sich daran?
Das ist praktisch die Definition von Refactoring aus dem gleichnamigen Buch von Martin Fowler.
In seinem Werk formuliert der Autor sie wie folgt:
Refactoring (Refactoring) (Substantiv): Ănderungen an der internen Struktur von Software, die darauf abzielen, das VerstĂ€ndnis ihrer Funktionsweise zu erleichtern und die Modifikation zu vereinfachen, ohne das beobachtbare Verhalten zu beeintrĂ€chtigen.
Refactor (Refactor) (Verb): Die Struktur von Software so Ă€ndern, dass eine Reihe von Refaktorisierungen durchgefĂŒhrt werden, ohne ihr Verhalten zu beeinflussen.
Das Buch gibt "Formeln" an, die im Quellcode erkannt werden mĂŒssen sowie Regeln fĂŒr ihre Transformation.
Als einfachstes Beispiel nehme ich die "EinfĂŒhrung einer erklĂ€renden Variablen" aus dem Buch:
if ( (platform.toUpperCase().indexOf("MAC") > -1) &&
(browser.toUpperCase().indexOf("IE") > -1) &&
wasInitialized() && resize > 0 ) {
// mache etwas
}Teile des Ausdrucks sollten in einer Variablen gespeichert werden, deren Name ihren Zweck erklÀrt.
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) {
// mache etwas
}
Stellen Sie sich eine Person vor, die algebraische AusdrĂŒcke nicht mit der Formel fĂŒr den Quadrat von Summen und Differenzen vereinfachen kann.
Wie denken Sie, kann diese Person den Code refaktorisieren?
Kann er ĂŒberhaupt einen fĂŒr andere verstĂ€ndlichen Code schreiben, wenn er kein Ideal dieser gleichen KĂŒrze entwickelt hat? Meiner Meinung nach nicht.
In der Schule sind jedoch alle, wĂ€hrend nur eine Minderheit Programmierer wird. Ist die FĂ€higkeit, AusdrĂŒcke zu transformieren, fĂŒr gewöhnliche Menschen nĂŒtzlich? Ich denke schon. Nur wird die FĂ€higkeit in abstrakterer Form angewendet: Man muss die Situation einschĂ€tzen und die nĂ€chste Handlung wĂ€hlen, um dem Ziel nĂ€her zu kommen. In der PĂ€dagogik wird dieses PhĂ€nomen als .
Die auffĂ€lligsten Beispiele entstehen bei alltĂ€glichen Reparaturen mit improvisierten Mitteln, im âkolchosmĂ€Ăigenâ Stil. Das Resultat sind diese âTricksâ und Lifehacks, einer davon ist auf dem Bild dargestellt. Der Urheber der Idee hatte ein StĂŒck Holz, ein Kabel und vier Schrauben. Er erinnerte sich an die Vorlage fĂŒr eine Lampenfassung und baute daraus eine selbstgemachte Fassung.
Selbst beim Fahren mit einem Auto ist der Fahrer stĂ€ndig damit beschĂ€ftigt, Muster in der Umgebung zu erkennen und entsprechende Manöver auszufĂŒhren, um sein Ziel zu erreichen.
Wenn du tot bist, weiĂt du es nicht, nur anderen ist es schwer. Dasselbe gilt, wenn du Mathematik nicht beherrschst...
Was passiert, wenn jemand nicht in der Lage ist, die Umwandlung von AusdrĂŒcken zu meistern? Ab und zu gebe ich Einzelunterricht fĂŒr SchĂŒler, die in der Schule Schwierigkeiten mit Mathe hatten. In der Regel bleiben sie vollstĂ€ndig beim Thema Schleifen stecken. So sehr, dass ich mit ihnen «Algebra» unterrichten muss, aber in Programmiersprache.
Das passiert, weil beim Schreiben von Schleifen der Haupttrick darin besteht, eine Gruppe Ă€hnlicher AusdrĂŒcke zu transformieren.
Nehmen wir an, das Ergebnis der ProgrammausfĂŒhrung sollte so aussehen:
EinfĂŒhrung
Kapitel 1
Kapitel 2
Kapitel 3
Kapitel 4
Kapitel 5
Kapitel 6
Kapitel 7
Fazit
Ein einfaches Programm, um dieses Ergebnis zu erreichen, sieht so aus:
static void Main(string[] args)
{
Console.WriteLine("EinfĂŒhrung");
Console.WriteLine("Kapitel 1");
Console.WriteLine("Kapitel 2");
Console.WriteLine("Kapitel 3");
Console.WriteLine("Kapitel 4");
Console.WriteLine("Kapitel 5");
Console.WriteLine("Kapitel 6");
Console.WriteLine("Kapitel 7");
Console.WriteLine("Schlussfolgerung");
}Aber diese Lösung ist weit entfernt von der eleganten Ideallösung. Zuerst mĂŒssen wir die sich wiederholende Gruppe von Aktionen finden und sie dann umwandeln. Am Ende erhalten wir folgende Lösung:
static void Main(string[] args)
{
Console.WriteLine("EinfĂŒhrung");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Kapitel " + i);
}
Console.WriteLine("Schlussfolgerung");
}Wenn jemand zu seiner Zeit die Mathematik nicht beherrscht hat, wird er auch keine derartigen Umwandlungen durchfĂŒhren können. Er hat einfach nicht die entsprechende FĂ€higkeit. Deshalb ist das Thema der Schleifen das erste Hindernis beim Lernen eines Entwicklers.
Ăhnliche Probleme treten auch in anderen Bereichen auf. Wenn jemand nicht in der Lage ist, ein verfĂŒgbares Werkzeug zu benutzen, kann er keine praktische Einfallsreichtum zeigen. Böse Zungen werden sagen, dass die HĂ€nde nicht von dem richtigen Platz kommen. Das zeigt sich auf der StraĂe darin, dass man die Situation nicht richtig einschĂ€tzen und den richtigen Manöver wĂ€hlen kann. Was manchmal zu tragischen Konsequenzen fĂŒhren kann.
Fazit:
- Schul- und Hochschulmathematik ist notwendig, damit wir die Welt mit den Mitteln, die uns zur VerfĂŒgung stehen, verbessern können.
- Wenn Sie lernen und Schwierigkeiten beim VerstĂ€ndnis von Schleifen haben, versuchen Sie, zu den Grundlagen zurĂŒckzukehren - zur Schulalgebra. Nehmen Sie ein Ăbungsbuch fĂŒr die 9. Klasse und bearbeiten Sie Beispiele aus diesem.
Quelle: habr.com
