Ето защо е нужна училищната алгебра

Обикновено на въпроса «защо е необходима математиката?» отговарят нещо от рода на «гимнастика за ума». Според мен, това обяснение е недостатъчно. Когато човек изпълнява физически упражнения, той знае точното наименование на мускулните групи, които се развиват. Но разговорите за математика остават твърде абстрактни. Кои конкретно „умствени мускули“ се тренират от училищната алгебра? Тя всъщност не прилича на истинската математика, в която се правят велики открития. Какво дава умението да търсиш производната на сложни функции?

Преподаването на програмиране на по-слабите студенти доведе до по-точен отговор на въпроса «защо?». В статията ще се опитам да ви го предам.

Ето защо е нужна училищната алгебра
В училище се отделя доста време за преобразуване и опростяване на изрази. Например: 81×2+126xy+49y2 трябва да се преобразува като (9x+7y)2.

В този пример от ученика се очаква да си спомни формулата на квадрата на сумата.

Ето защо е нужна училищната алгебра

В по-сложни случаи, полученото изразяване може да се използва за други преобразувания. Например:

Ето защо е нужна училищната алгебра

първо се преобразува в

Ето защо е нужна училищната алгебра

а след това, с уточнението (a + 2b) != 0, получава така

Ето защо е нужна училищната алгебра

За да се постигне такъв резултат, ученикът трябва да разпознае в началното изразяване и после да приложи три формули:

  • Квадрат на сумата
  • Разлика на квадратите
  • Съкращаване на множители в обикновена дроб

В обикновеното училище по алгебра почти през цялото време се занимавахме с подобни преобразувания. В университетската висша математика почти нищо не се промени. Разказаха ни как да взимаме производни (интеграли и т.н.) и ни дадоха тонове задачи. Беше ли това полезно? Според мен — да. В резултат на изпълнението на подобни упражнения:

  1. Умението за преобразуване на изрази се усъвършенства.
  2. Развива се вниманието към детайлите.
  3. Се формира идеал — лаконичен израз, към който можем да се стремим.

Според мен, наличието на такъв идеал, качество и умение е много полезно в ежедневната работа на разработчика. Защото опростяването на израз означава всъщност да промениш неговата структура с цел улесняване на разбирането, без да се засяга смисълът. Напомня ли ви това нещо?

Това е практически определение за рефакторинг от едноименната книга на Мартин Фаулър.

В своята работа, авторът ги формулира по следния начин:

Рефакторинг (Refactoring) (сущ.): изменение на вътршната структура на софтуера, с цел да се улесни разбирането на неговата работа и да се опрости модификацията, без да се засяга наблюдаваното поведение.

Производя рефакторинг (Refactor) (глаг.): променям структурата на софтуера, прилагайки серия от рефакторинги, без да засягам неговото поведение.

В книгата се предоставят „формули“, които трябва да бъдат разпознати в изходния код, и правила за тяхното преобразуване.

Като най-прост пример, ще дам „въведението на пояснителна променлива“ от книгата:

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

Частите на израза трябва да бъдат записани в променлива, име на която пояснява предназначението му.

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) {
   // do something
}

Представете си човек, който не може да опростява алгебрични изрази, използвайки формулата за квадрата на сумата и разликата на квадратите.

Как мислите, ще може ли този човек да рефакторира код?

Ще може ли изобщо да напише разбираем код за другите, ако не е създал идеал за същата тази лаконичност? Според мен — не.

Въпреки това, в училище учат всички, а програмисти стават малцинство. Полезен ли е умението за преобразуване на изрази за обикновените хора? Мисля да. Само че умението се прилага в по-абстрактна форма: трябва да се оценят условията и да се избере следващото действие, така че да се приближите до целта. В педагогиката този феномен се нарича пренос (навигация).

Най-ярките примери възникват при битов ремонт с подръчни средства, „колхозен“ начин. В резултат се появяват тези „фишки“ и лайфхаци, един от които е изобразен на КПДВ. Авторът на идеята е имал парче дърво, проводник и четири винта. Спомняйки си шаблона на патрона за лампа, той е сглобил от тях самоделен патрон.

Дори при шофиране с автомобил, шофьорът постоянно разпознава шаблони в околния свят и извършва съответните маневри, за да стигне до целта.

Когато умреш, ти не знаеш за това, само на другите им е трудно. Същото е и когато не си усвоил математиката…

Какво се случва, ако човек не успее да усвои преобразуването на изрази? От време на време провеждам индивидуални занятия със студенти, които имат затруднения с математиката в училище. Обикновено те се задържат на темата за циклите. Толкова, че с тях трябва да се занимавам с "алгебра", но на езика на програмирането.
Това се случва, защото при написването на цикли основният подход е именно да преобразувате група от идентични изрази.

Да предположим, че резултатът от работата на програмата трябва да изглежда така:

Въведение
Глава 1
Глава 2
Глава 3
Глава 4
Глава 5
Глава 6
Глава 7
Заключение

Тривиалната програма за постигане на този резултат изглежда така:

static void Main(string[] args)
{
    Console.WriteLine("Въведение");
    Console.WriteLine("Глава 1");
    Console.WriteLine("Глава 2");
    Console.WriteLine("Глава 3");
    Console.WriteLine("Глава 4");
    Console.WriteLine("Глава 5");
    Console.WriteLine("Глава 6");
    Console.WriteLine("Глава 7");
    Console.WriteLine("Заключение");
}

Но това решение е далеч от лаконичния идеал. Първо, трябва да намерите повтарящата се група действия и след това да я преобразувате. В крайна сметка ще получите такова решение:

static void Main(string[] args)
{
    Console.WriteLine("Въведение");
    for (int i = 1; i <= 7; i++)
    {
        Console.WriteLine("Глава " + i);
    }
    Console.WriteLine("Заключение");
}

Ако човек не е усвоил математиката навреме, то той няма да може да извършва подобни преобразувания. Просто няма да притежава необходимите умения. Именно затова темата за циклите е първото препятствие в обучението на разработчика.

Подобни проблеми възникват и в други области. Ако човек не умее да използва наличния инструмент, то той няма да може да прояви битова находчивост. Злите езици ще кажат, че ръцете му не растат от правилното място. На пътя това се проявява в невъзможността да оцени ситуацията правилно и да избере маневра, което понякога може да доведе до трагични последици.

Изводи:

  1. Училищната и университетската математика са ни нужни, за да можем да направим света по-добър с ресурсите, които разполагаме.
  2. Ако учите и имате затруднения в изучаването на цикли, опитайте да се върнете към основите — училищната алгебра. Вземете учебник за 9 клас и решавайте примери от него.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster