DafĂŒr ist die Schulalgebra notwendig

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.

DafĂŒr ist die Schulalgebra notwendig
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.

DafĂŒr ist die Schulalgebra notwendig

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

DafĂŒr ist die Schulalgebra notwendig

wird zuerst umgeformt zu

DafĂŒr ist die Schulalgebra notwendig

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

DafĂŒr ist die Schulalgebra notwendig

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:

  1. Wurde die FĂ€higkeit zum Umformen von AusdrĂŒcken geschĂ€rft.
  2. Die Aufmerksamkeit fĂŒr Details hat sich entwickelt.
  3. 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 Transfer (FĂ€higkeit).

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:

  1. Schul- und Hochschulmathematik sind notwendig, damit wir die Welt mit den Mitteln, die wir haben, verbessern können.
  2. 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

60GB SSD 8Gb DDR4