Obvykle, když se ptáme „proč je matematika potřebná?“, dostaneme odpověď jako „gymnastika pro mysl“. Podle mého názoru tohle vysvětlení nestačí. Když člověk provádí fyzické cvičení, zná přesná jména svalových skupin, které při tom posiluje. Ale diskuse o matematice zůstávají příliš abstraktní. Které konkrétní „svaly mysli“ trénuje školní algebra? Vždyť se vůbec nepodobá skutečné matematice, ve které se dělají velké objevování. Co vlastně přináší dovednost hledat derivaci nějakých složitých funkcí?
Učit programování slabým studentům mě přivedlo k přesnější odpovědi na otázku „proč?“. V článku se vám ji pokusím přiblížit.

Ve škole se věnuje relativně dost času transformacím a zjednodušování výrazů. Například: 81×2+126xy+49y2 je třeba přepracovat na (9x+7y)2.
V tomto příkladu se očekává, že student si vzpomene na vzorec pro druhou mocninu součtu.

V složitějších případech lze získaný výraz použít pro další transformace. Například:

se nejprve transformuje na

a poté, s ujasněním (a + 2b) != 0, se dostane na tuto podobu

Aby student dosáhl takového výsledku, musí v původním výrazu rozpoznat a poté aplikovat tři vzorce:
- Druhá mocnina součtu
- Rozdíl čtverců
- Zjednodušení faktorů v obyčejném zlomku
Na běžné škole jsme na algebře trávili téměř celý čas těmito transformacemi. Na VŠ ve vyšší matematice se nic zásadního nezměnilo. Řekli nám, jak brát derivace (integrály atd.) a dali nám hromadu úloh. Bylo to užitečné? Podle mého názoru — ano. V důsledku plnění těchto cvičení:
- Získal jsem dovednost transformace výrazů.
- Rozvinula se mi pozornost k detailům.
- Byl vytvořen ideál — lakonický výraz, ke kterému se lze snažit přiblížit.
Podle mého názoru je existence takového ideálu, kvality a dovednosti velmi užitečná v každodenní práci programátora. Vždyť zjednodušit výraz znamená v podstatě změnit jeho strukturu s cílem usnadnit porozumění, a to bez narušení smyslu. Připomíná vám to něco?
To je prakticky definice refaktoringu z homonymní knihy Martina Fowlera.
Ve své práci autor formuluje tyto vzorce následovně:
Refaktoring (Refactoring) (podstatné jméno): změna ve vnitřní struktuře softwaru, jejímž cílem je usnadnit porozumění jeho fungování a zjednodušit modifikaci, aniž by se dotklo pozorovaného chování.
Provádět refaktoring (Refactor) (sloveso): měnit strukturu softwaru na základě řady refaktoringů, aniž by se to dotklo jeho chování.
Kniha poskytuje „formule“, které je třeba rozpoznat v původním kódu, a pravidla jejich transformace.
Jako nejjednodušší příklad uvedu „vytvoření vysvětlující proměnné“ z knihy:
if ( (platform.toUpperCase().indexOf(“MAC”) > -1 ) &&
(browser.toUpperCase().indexOf(“IE”) > -1 )&&
wasInitialized() && resize > 0 ) {
// proveď něco
}Části výrazu je třeba zapsat do proměnné, jejíž název vysvětluje její účel.
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) {
// proveď něco
}
Představte si člověka, který nedokáže zjednodušovat algebraické výrazy za použití vzorce pro čtverec součtu a rozdílu čtverců.
Jak myslíte, bude tenhle člověk schopen refaktorovat kód?
Bude schopen vůbec napsat srozumitelný kód pro ostatní, pokud si nevytvořil ideál této samotné úspornosti? Podle mého názoru – ne.
Nicméně ve škole se učí všichni, ale programátory se stává menšina. Je dovednost transformace výrazů užitečná pro běžné lidi? Myslím, že ano. Jen se dovednost uplatňuje v abstraktnější podobě: je třeba zhodnotit situaci a vybrat další krok tak, aby se přiblížil cíli. V pedagogice se tento fenomén nazývá .
Nejvýraznější příklady vznikají při domácích opravách s využitím dostupných prostředků, „kolchozním“ způsobem. Výsledkem jsou ty „fígle“ a lifehacky, z nichž jeden je zobrazen na KPDB. Autor myšlenky měl kus dřeva, drát a čtyři šrouby. Vzpomněl si na šablonu patice pro lampu a z nich složil domácí patici.
I při jízdě motorovým vozidlem se řidič neustále zabývá rozpoznáváním vzorů v okolním světě a prováděním odpovídajících manévrů, aby se dostal k cíli.
Když umřeš, nevíš o tom, je to jen pro ostatní těžké. To samé platí, když jsi nezvládl matematiku…
Co se stane, pokud se člověku nepodaří zvládnout transformaci výrazů? Občas vedu individuální lekce se studenty, kteří neměli na škole dobrou matematiku. Obvykle uvíznou na tématu o cyklech. Tak moc, že s nimi musím pracovat na "algebře", ale v programovacím jazyce.
Stává se to, protože při psaní cyklů spočívá hlavní technika právě v tom, jak převést skupinu stejných výrazů.
Představme si, že výsledek běhu programu by měl vypadat takto:
Úvod
Kapitola 1
Kapitola 2
Kapitola 3
Kapitola 4
Kapitola 5
Hlava 6
Hlava 7
Závěr
Triviální program pro dosažení tohoto výsledku vypadá takto:
static void Main(string[] args)
{
Console.WriteLine("Úvod");
Console.WriteLine("Kapitola 1");
Console.WriteLine("Kapitola 2");
Console.WriteLine("Kapitola 3");
Console.WriteLine("Kapitola 4");
Console.WriteLine("Kapitola 5");
Console.WriteLine("Kapitola 6");
Console.WriteLine("Kapitola 7");
Console.WriteLine("Závěr");
}Ale toto řešení je daleko od stručného ideálu. Nejprve je v něm potřeba najít opakující se skupinu úkonů a pak je transformovat. Nakonec dostaneme takové řešení:
static void Main(string[] args)
{
Console.WriteLine("Úvod");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Kapitola " + i);
}
Console.WriteLine("Závěr");
}Pokud se však člověk včas nenaučil matematiku, nebude schopen takové transformace provést. Prostě mu chybí odpovídající dovednost. Proto je téma cyklů první překážkou při učení vývojáře.
Podobné problémy se vyskytují i v jiných oblastech. Pokud člověk neumí používat dostupný nástroj, nebude schopen projevit každodenní vynalézavost. Zlí jazykové budou říkat, že ruce nemá z toho správného místa. Na silnici se to projevuje v neschopnosti správně posoudit situaci a vybrat manévr. Což někdy může vést k tragickým následkům.
Závěry:
- Školní a vysokoškolská matematika nám je potřebná, abychom uměli zlepšovat svět těmi prostředky, které máme.
- Pokud se učíte a máte problémy s porozuměním cyklům, zkuste se vrátit ke kořenům — školní algebře. Vezměte si učebnici pro 9. třídu a řešte příklady z ní.
Zdroj: habr.com
