Normalerweise wird auf die Frage «Warum ist Mathematik notwendig?» mit etwas geantwortet wie «Gymnastik fĂŒr den Verstand». Meiner Meinung nach reicht diese ErklĂ€rung nicht aus. Wenn eine Person körperliche Ăbungen macht, kennt sie die genauen Namen der Muskelgruppen, die dabei trainiert werden. Aber die GesprĂ€che ĂŒber Mathematik bleiben zu abstrakt. Welche spezifischen âVerstandesmuskelnâ werden in der Schulalgebra trainiert? Sie Ă€hnelt ja ĂŒberhaupt nicht der echten Mathematik, in der groĂe Entdeckungen gemacht werden. Was bringt es, die Ableitung einiger komplizierter Funktionen zu suchen?
Der Unterricht in Programmierung fĂŒr schwache SchĂŒler hat mich zu einer prĂ€ziseren Antwort auf die Frage «Warum?» gefĂŒhrt. In diesem Artikel werde ich versuchen, sie Ihnen zu vermitteln.

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

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

wird zuerst umgeformt zu

und dann, mit der PrÀzisierung (a + 2b) != 0, sieht es so aus

Um ein solches Ergebnis zu erzielen, muss der SchĂŒler den ursprĂŒnglichen Ausdruck erkennen und dann drei Formeln anwenden:
- Das Quadrat der Summe
- Die Differenz der Quadrate
- Die KĂŒrzung der Faktoren eines normalen Bruchs
In der gewöhnlichen Schule haben wir im Algebraunterricht fast die gesamte Zeit mit solchen Umformungen verbracht. An der UniversitĂ€t in der höheren Mathematik hat sich nicht viel geĂ€ndert. Uns wurde beigebracht, wie man Ableitungen (Integrale usw.) macht und wir erhielten eine Menge Aufgaben. War das nĂŒtzlich? Meiner Meinung nach ja. Durch die AusfĂŒhrung solcher Ăbungen:
- Wurde die FĂ€higkeit zum Umformen von AusdrĂŒcken geschĂ€rft.
- Die Aufmerksamkeit fĂŒr Details hat sich entwickelt.
- Ein Ideal wurde geschaffen - ein prÀgnanter Ausdruck, dem man nachstreben kann.
Meiner Meinung nach ist das Vorhandensein eines solchen Ideals, QualitĂ€t und FĂ€higkeit in der tĂ€glichen Arbeit eines Entwicklers sehr nĂŒtzlich. SchlieĂlich bedeutet es, einen Ausdruck zu vereinfachen, im Wesentlichen seine Struktur zu Ă€ndern, um das VerstĂ€ndnis zu erleichtern, ohne den Sinn zu berĂŒhren. Erinnert Sie das an irgendetwas?
Das ist praktisch die Definition von Refactoring aus dem gleichnamigen Buch von Martin Fowler.
In seinem Werk formuliert der Autor sie folgendermaĂen:
Refactoring (Refactoring) (Subst.): VerÀnderung der internen Struktur von Software, die darauf abzielt, das VerstÀndnis ihrer Funktionsweise zu erleichtern und die Modifikation zu vereinfachen, ohne das beobachtbare Verhalten zu beeintrÀchtigen.
Refactor (Verb): Die Struktur von Software Àndern, indem eine Reihe von Refactorings angewendet werden, ohne ihr Verhalten zu beeinflussen.
Das Buch liefert âFormelnâ, die im Quellcode erkannt werden mĂŒssen, sowie Regeln fĂŒr ihre Transformation.
Als einfachstes Beispiel fĂŒhre ich die âEinfĂŒhrung einer erklĂ€renden Variableâ aus dem Buch an:
if ( (platform.toUpperCase().indexOf(âMACâ) > -1 ) &&
(browser.toUpperCase().indexOf(âIEâ) > -1 )&&
wasInitialized() && resize > 0 ) {
// etwas tun
}Die 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) {
// etwas tun
}
Stellen Sie sich eine Person vor, die algebraische AusdrĂŒcke nicht mit der Formel der Differenz von Quadraten vereinfachen kann.
Glauben Sie, dass diese Person in der Lage ist, Code zu refaktorisieren?
Wird sie ĂŒberhaupt in der Lage sein, fĂŒr andere Menschen verstĂ€ndlichen Code zu schreiben, wenn ihr der Idealbegriff der Klarheit nicht vertraut ist? Meiner Meinung nach â nein.
Aber in der Schule lernen alle, nur eine Minderheit wird Programmierer. 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 eindrucksvollsten Beispiele treten beim Haushaltsrenovierungen mit improvisierten Mitteln auf, auf âkollektivistischeâ Weise. Das fĂŒhrt zu den berĂŒhmten âTricksâ und Lifehacks, von denen einer in der KPDA dargestellt ist. Der Autor der Idee hatte ein StĂŒck Holz, einen Draht und vier Schrauben. Er erinnerte sich an die Schablone einer Lampenfassung und baute aus diesen Materialien eine selbstgemachte Fassung.
Selbst beim Fahren mit einem Auto beschĂ€ftigt sich der Fahrer stĂ€ndig mit dem Erkennen von Mustern in der Umgebung und fĂŒhrt entsprechende Manöver aus, um sein Ziel zu erreichen.
Wenn du tot bist, weiĂt du es nicht, nur anderen geht es schwer. Das Gleiche gilt, wenn du Mathematik nicht beherrschstâŠ
Was passiert, wenn es einer Person nicht gelingt, die Umformung von AusdrĂŒcken zu meistern? Gelegentlich gebe ich Einzelunterricht mit Studenten, denen es in der Schule schwerfiel, mit Mathematik umzugehen. In der Regel bleiben sie komplett beim Thema Schleifen stecken. So sehr, dass ich mit ihnen an der 'Algebra' arbeiten muss, aber in Programmiersprache.
Das passiert, weil der Hauptansatz beim Schreiben von Schleifen darin besteht, eine Gruppe identischer AusdrĂŒcke umzuwandeln.
Angenommen, das Ergebnis der ProgrammausfĂŒhrung soll so aussehen:
EinfĂŒhrung
Kapitel 1
Kapitel 2
Kapitel 3
Kapitel 4
Kapitel 5
Kapitel 6
Kapitel 7
Fazit
Ein triviales 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 einem prÀgnanten Ideal. ZunÀchst muss man die sich wiederholende Gruppe von Aktionen finden und dann umformen. Am Ende ergibt sich 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 eine Person jedoch zu einem bestimmten Zeitpunkt keine Mathematik beherrscht, kann sie solche Umformungen nicht durchfĂŒhren. Sie wird einfach nicht ĂŒber die entsprechenden FĂ€higkeiten verfĂŒgen. Genau deshalb ist das Thema Schleifen das erste Hindernis im Unterricht von Entwicklern.
Ăhnliche Probleme treten auch in anderen Bereichen auf. Wenn eine Person nicht weiĂ, wie man ein Hilfsmittel verwendet, kann sie keine Alltagsgeschicklichkeit zeigen. Böse Zungen werden sagen, dass die HĂ€nde nicht von dem richtigen Platz kommen. Auf der StraĂe zeigt sich das in der UnfĂ€higkeit, die Situation richtig einzuschĂ€tzen und das passende Manöver zu wĂ€hlen. Was manchmal zu tragischen Folgen fĂŒhren kann.
Fazit:
- Schul- und Hochschulmathematik sind notwendig, damit wir die Welt mit den Mitteln, die wir haben, verbessern können.
- Wenn Sie lernen und Probleme mit dem VerstĂ€ndnis von Schleifen haben, versuchen Sie, zu den Grundlagen zurĂŒckzukehren â zur Schulalgebra. Nehmen Sie ein Aufgabenbuch fĂŒr die 9. Klasse und lösen Sie die Aufgaben daraus.
Quelle: habr.com
