Zwykle na pytanie „po co potrzebna jest matematyka?” odpowiada się coś w stylu „gimnastyka dla umysłu”. Moim zdaniem, to wyjaśnienie jest niewystarczające. Kiedy człowiek wykonuje ćwiczenia fizyczne, wie dokładnie, jakie grupy mięśni rozwija. Jednak rozmowy o matematyce pozostają zbyt abstrakcyjne. Jakie konkretnie „mięśnie umysłu” trenuje szkolna algebra? Przecież nie przypomina ona prawdziwej matematyki, w której dokonuje się wielkich odkryć. Co daje umiejętność znajdowania pochodnej z jakichś skomplikowanych funkcji?
Nauczanie programowania słabych studentów doprowadziło mnie do dokładniejszej odpowiedzi na pytanie „po co?”. W artykule postaram się przekazać Wam tę odpowiedź.

W szkole poświęca się sporo czasu na przekształcanie i upraszczanie wyrażeń. Na przykład: 81×2+126xy+49y2 należy przekształcić jako (9x+7y)2.
W tym przykładzie od ucznia oczekuje się, że przypomni sobie wzór kwadratu sumy.

W bardziej skomplikowanych przypadkach uzyskane wyrażenie można wykorzystać do innych przekształceń. Na przykład:

przekształca się najpierw w

a potem, przy założeniu (a + 2b) != 0, wygląda to tak

Aby osiągnąć taki wynik, uczeń musi rozpoznać w początkowym wyrażeniu i następnie zastosować trzy formuły:
- Kwadrat sumy
- Różnica kwadratów
- Skracanie czynników w zwykłych ułamkach.
W zwykłej szkole na algebrze prawie cały czas zajmowaliśmy się takim przekształcaniem wyrażeń. Na uczelniach na wyższej matematyce niewiele się zmieniło. Opowiedziano nam, jak obliczać pochodne (całki itd.) i wydano tonę zadań. Czy to było przydatne? Moim zdaniem – tak. W wyniku wykonywania takich ćwiczeń:
- Wyszlifowano umiejętność przekształcania wyrażeń.
- Rozwinęła się uwaga na szczegóły.
- Uformowano ideał – zwięzłe wyrażenie, do którego można dążyć.
Moim zdaniem, posiadanie takiego ideału, jakości i umiejętności jest bardzo przydatne w codziennej pracy programisty. W końcu uprościć wyrażenie, w istocie, oznacza zmienić jego strukturę, aby ułatwić zrozumienie, nie naruszając sensu. Czy to coś Wam nie przypomina?
To praktycznie definicja refaktoryzacji z książki Martina Fowlera o tej samej nazwie.
W swoim dziele autor formułuje je w następujący sposób:
Refaktoryzacja (Refactoring) (rzecz.): zmiana w wewnętrznej strukturze oprogramowania, mająca na celu ułatwienie zrozumienia jego działania oraz uproszczenie modyfikacji, nie wpływając na obserwowane zachowanie.
Przeprowadzać refaktoryzację (Refactor) (czasownik.): zmieniać strukturę oprogramowania, stosując szereg refaktoryzacji, nie wpływając na jego zachowanie.
Książka przedstawia "formuły", które należy rozpoznać w kodzie źródłowym oraz zasady ich przekształcania.
Jako najprostszy przykład podam "wprowadzenie zmiennej pomocniczej" z książki:
if ( (platform.toUpperCase().indexOf("MAC") > -1 ) &&
(browser.toUpperCase().indexOf("IE") > -1 )&&
wasInitialized() && resize > 0 ) {
// zrób coś
}Części wyrażenia należy zapisać w zmiennej, której nazwa wyjaśnia jej przeznaczenie.
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) {
// zrób coś
}
Wyobraź sobie osobę, która nie potrafi upraszczać wyrażeń algebraicznych za pomocą wzoru na sumę i różnicę kwadratów.
Czy sądzisz, że ta osoba będzie w stanie refaktoryzować kod?
Czy w ogóle będzie w stanie napisać czytelny kod dla innych ludzi, jeśli nie ma wykształconego ideału tejże zwięzłości? Moim zdaniem - nie.
Jednak w szkole uczą się wszyscy, a programistami zostaje mniejszość. Czy umiejętność przekształcania wyrażeń jest przydatna dla zwykłych ludzi? Myślę, że tak. Tylko umiejętność ta jest wykorzystywana w bardziej abstrakcyjnej formie: należy ocenić sytuację i wybrać dalsze działanie, aby zbliżyć się do celu. W pedagogice zjawisko to nazywa się .
Najjaśniejsze przykłady pojawiają się podczas domowego remontu za pomocą dostępnych środków, w "chłopski" sposób. W rezultacie powstają te "sztuczki" i lifehacki, jedna z nich została zobrazywana na KPDA. Autor pomysłu miał kawałek drewna, przewód i cztery wkręty. Przypominając sobie wzorzec dla żarówki, zmontował z nich samodzielny gwint.
Nawet podczas jazdy samochodem kierowca nieustannie zajmuje się rozpoznawaniem wzorców w otaczającym świecie oraz wykonywaniem odpowiednich manewrów, aby dotrzeć do celu.
Kiedy umarłeś, nie wiesz o tym, tylko innym jest ciężko. To samo dzieje się, gdy nie opanowałeś matematyki...
Co się dzieje, jeśli człowiek nie opanuje przekształcania wyrażeń? Czasami prowadzę indywidualne zajęcia ze studentami, którzy mieli problemy z matematyką w szkole. Zazwyczaj utknęli na temacie pętli. Na tyle, że muszę zajmować się "algebrą", ale w języku programowania.
Dzieje się tak, ponieważ przy pisaniu pętli podstawowa technika polega na przekształceniu grupy tych samych wyrażeń.
Niech wynik działania programu wygląda następująco:
Wprowadzenie
Rozdział 1
Rozdział 2
Rozdział 3
Rozdział 4
Rozdział 5
Rozdział 6
Rozdział 7
Podsumowanie
Trywialny program osiągający ten wynik wygląda tak:
static void Main(string[] args)
{
Console.WriteLine("Wprowadzenie");
Console.WriteLine("Rozdział 1");
Console.WriteLine("Rozdział 2");
Console.WriteLine("Rozdział 3");
Console.WriteLine("Rozdział 4");
Console.WriteLine("Rozdział 5");
Console.WriteLine("Rozdział 6");
Console.WriteLine("Rozdział 7");
Console.WriteLine("Zakończenie");
}Jednak to rozwiązanie jest dalekie od zwięzłego ideału. Najpierw trzeba znaleźć powtarzającą się grupę działań i następnie ją przekształcić. Ostatecznie otrzymujemy takie rozwiązanie:
static void Main(string[] args)
{
Console.WriteLine("Wprowadzenie");
for (int i = 1; i <= 7; i++)
{
Console.WriteLine("Rozdział " + i);
}
Console.WriteLine("Zakończenie");
}Jeśli jednak osoba w swoim czasie nie opanowała matematyki, to nie będzie w stanie wykonać takich przekształceń. Prosto mówiąc, nie będzie miała odpowiednich umiejętności. Dlatego temat pętli jest pierwszą przeszkodą w nauce programowania.
Podobne problemy występują i w innych dziedzinach. Jeśli ktoś nie umie korzystać z dostępnego narzędzia, to nie będzie potrafił wykazać się kreatywnością w codziennym życiu. Złośliwi powiedzą, że ręce nie stamtąd, co trzeba. Na drodze objawia się to nieumiejętnością właściwej oceny sytuacji i wyboru manewru. Co czasami może prowadzić do tragicznych konsekwencji.
Wnioski:
- Matematyka szkolna i akademicka jest nam potrzebna, abyśmy potrafili czynić świat lepszym dzięki tym środkom, które mamy.
- Jeśli uczysz się i masz problemy z nauką pętli, spróbuj wrócić do podstaw — do szkolnej algebry. Weź podręcznik do klasy 9 i rozwiąż przykłady z niego.
Źródło: habr.com
