Ecco perché è utile l'algebra scolastica

Di solito, alla domanda "perché è necessaria la matematica?" si risponde con qualcosa come "ginnastica per la mente". A mio avviso, questa spiegazione è insufficiente. Quando una persona svolge esercizi fisici, conosce il nome esatto dei gruppi muscolari che sta sviluppando. Ma i discorsi sulla matematica rimangono troppo astratti. Quali sono esattamente le "muscoli della mente" che l'algebra scolastica allena? Non somiglia affatto alla vera matematica, dove si fanno scoperte straordinarie. Qual è il valore di saper cercare la derivata di funzioni complicate?

L'insegnamento della programmazione a studenti poco motivati mi ha portato a una risposta più precisa alla domanda "perché?". In questo articolo cercherò di comunicarvelo.

Ecco perché è utile l'algebra scolastica
A scuola si dedica molto tempo alla trasformazione e semplificazione delle espressioni. Ad esempio: 81×2+126xy+49y2 deve essere trasformato in (9x+7y)2.

In questo esempio, ci si aspetta che lo studente ricordi la formula del quadrato della somma.

Ecco perché è utile l'algebra scolastica

Nei casi più complessi, l'espressione ottenuta può essere utilizzata per ulteriori trasformazioni. Ad esempio:

Ecco perché è utile l'algebra scolastica

si trasforma prima in

Ecco perché è utile l'algebra scolastica

e poi, aggiungendo che (a + 2b) != 0, si ottiene

Ecco perché è utile l'algebra scolastica

Per ottenere questo risultato, lo studente deve riconoscere nell'espressione iniziale e poi applicare tre formule:

  • Quadrato della somma
  • Differenza dei quadrati
  • Semplificazione dei fattori di una frazione normale

Nella scuola tradizionale, durante le lezioni di algebra, ci siamo occupati per quasi tutto il tempo di tali trasformazioni delle espressioni. All'università, nella matematica avanzata, non è cambiato molto. Ci hanno insegnato a calcolare derivate (integrali, ecc.) e ci hanno dato un sacco di esercizi. È stato utile? Secondo me, sì. Grazie all'esecuzione di tali esercizi:

  1. Si è affinata la capacità di trasformare le espressioni.
  2. Si è sviluppata l'attenzione ai dettagli.
  3. È stato formato un ideale: un'espressione concisa alla quale si può aspirare.

A mio avviso, avere un tale ideale, insieme alla qualità e alla competenza, è molto utile nel lavoro quotidiano di uno sviluppatore. Infatti, semplificare un'espressione significa, in sostanza, modificarne la struttura per facilitarne la comprensione, senza alterarne il senso. Ti ricorda qualcosa?

È praticamente una definizione di rifattorizzazione tratta dal libro omonimo di Martin Fowler.

Nella sua opera, l'autore le formula nel seguente modo:

Refactoring (Rifattorizzazione) (sostantivo): modifica della struttura interna di un software al fine di facilitarne la comprensione e semplificare la sua modifica, senza influire sul comportamento osservato.

Rifattorizzare (Refactor) (verbo): cambiare la struttura di un software applicando una serie di rifattorizzazioni, senza influire sul suo comportamento.

Nel libro vengono fornite 'formule' che devono essere riconosciute nel codice sorgente e regole per la loro trasformazione.

Come esempio più semplice, cito 'l'introduzione di una variabile esplicativa' dal libro:

if ( (platform.toUpperCase().indexOf(“MAC”) > -1 ) &&
    (browser.toUpperCase().indexOf(“IE”) > -1 ) &&
    wasInitialized() && resize > 0 ) {
    // eseguire qualcosa
}

Le parti dell'espressione devono essere registrate in una variabile il cui nome chiarisce la sua funzione.

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) {
   // eseguire qualcosa
}

Immaginate una persona che non riesce a semplificare le espressioni algebriche usando la formula della somma e differenza dei quadrati.

Credete che questa persona sia in grado di rifattorizzare il codice?

Potrà davvero scrivere un codice comprensibile agli altri se non ha sviluppato un ideale di questa stessa concisione? A mio avviso, no.

Tuttavia, a scuola ci sono tutti, mentre solo una minoranza diventa programmatore. È utile per le persone comuni avere la capacità di trasformare le espressioni? Credo di sì. Solo che la capacità viene utilizzata in una forma più astratta: bisogna valutare la situazione e scegliere l'azione successiva per avvicinarsi all'obiettivo. In pedagogia, questo fenomeno è chiamato trasferimento (di abilità).

I più luminosi esempi sorgono durante i lavori domestici con mezzi di fortuna, in modo 'artigianale'. Di conseguenza, nascono quei 'trucchi' e life hack, uno dei quali è illustrato su un immagine. L'autore dell'idea aveva un pezzo di legno, un filo e quattro viti. Ricordando il modello di un portalampada, lo ha assemblato per creare un portalampada fai-da-te.

Anche quando si viaggia in automobile, il conducente è costantemente impegnato a riconoscere i modelli nel mondo circostante e a compiere le manovre appropriate per raggiungere la meta.

Quando sei morto, non lo sai, solo gli altri ne soffrono. Lo stesso avviene quando non hai padroneggiato la matematica...

Cosa succede se una persona non riesce a capire la trasformazione delle espressioni? Di tanto in tanto tengo lezioni individuali con studenti che hanno avuto difficoltà con la matematica a scuola. Di solito, si bloccano completamente sul tema dei cicli. Tanto da dover affrontare l'«algebra», ma nel linguaggio di programmazione.
Questo accade perché, nel scrivere cicli, la tecnica principale consiste proprio nel trasformare un gruppo di espressioni identiche.

Supponiamo che il risultato del programma debba apparire così:

Introduzione
Capitolo 1
Capitolo 2
Capitolo 3
Capitolo 4
Capitolo 5
Capitolo 6
Capitolo 7
Conclusione

Il programma triviale per ottenere questo risultato appare così:

static void Main(string[] args)
{
    Console.WriteLine("Introduzione");
    Console.WriteLine("Capitolo 1");
    Console.WriteLine("Capitolo 2");
    Console.WriteLine("Capitolo 3");
    Console.WriteLine("Capitolo 4");
    Console.WriteLine("Capitolo 5");
    Console.WriteLine("Capitolo 6");
    Console.WriteLine("Capitolo 7");
    Console.WriteLine("Conclusione");
}

Ma questa soluzione è lontana dall'essere l'ideale conciso. Prima bisogna individuare il gruppo di azioni ripetute e poi trasformarlo. Alla fine si otterrà una soluzione del genere:

static void Main(string[] args)
{
    Console.WriteLine("Introduzione");
    for (int i = 1; i <= 7; i++)
    {
        Console.WriteLine("Capitolo " + i);
    }
    Console.WriteLine("Conclusione");
}

Se una persona non ha appreso la matematica in tempo, non sarà in grado di eseguire tali trasformazioni. Non avrà semplicemente le competenze necessarie. Ecco perché il tema dei cicli rappresenta il primo ostacolo nella formazione di uno sviluppatore.

Problemi simili si presentano anche in altre aree. Se una persona non sa usare gli strumenti a disposizione, non potrà dimostrare ingegno pratico. Gente maliziosa dirà che le mani non provengono dal posto giusto. Questo si manifesta sulla strada nell'incapacità di valutare correttamente la situazione e scegliere la manovra. Cosa che a volte può portare a conseguenze tragiche.

Conclusioni:

  1. La matematica scolastica e universitaria ci serve per imparare a migliorare il mondo con i mezzi che abbiamo.
  2. Se stai studiando e hai difficoltà con i cicli, prova a tornare alle basi — l'algebra delle scuole superiori. Prendi un libro di esercizi del 9° anno e risolvi i problemi.

Fonte: habr.com

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster