Strona główna » Algorytmy » Artykuły » Programowanie, a matematyka

Programowanie, a matematyka

Co z czego?

Programowanie niewątpliwie pochodzi od matematyki. Bardzo mało osób widzi programowanie jako coś oddzielnego od matematyki, a wręcz twierdzą, że jeśli jest ktoś dobry z matematyki to będzie również z informatyki. Jest to częściowa prawda, ponieważ istnieje szereg innych czynników, która mają tutaj bardzo duże znaczenie.

Rozwiązywanie problemu

Programowanie jest to przede wszystkim pisanie algorytmów - szukanie rozwiązania dla przedstawionego problemu. Zadanie wcale nie musi oznaczać wyliczania tysięcy danych, dokonywania operacji arytmetycznych. Innymi słowy rozwiązywany problem wcale nie musi dotyczyć matematyki! Przykładowo załóżmy, że istnieje potrzeba sprawdzenia wypracowań z przedmiotu X. Instrukcja, pisana w sposób dość lakoniczny mogłaby wyglądać następująco:

  1. Jeśli istnieje nieocenione wypracowanie to weź je
  2. Sprawdź wypracowanie stawiając 1 punkt za każdą poprawną odpowiedź
  3. Zlicz sumę punktów
  4. Na podstawie sumy punktów wystaw ocenę
  5. Odłóż pracę i wróć do punktu (1.)

Jest to pewnego rodzaju abstrakcyjny algorytm sprawdzania wypracowań, kartkówek czy nawet egzaminów. Można go również dostosować na wiele sposób np. zmieniając sposób oceniania odpowiedzi. Jak widać w tym przypadku wcale nie była potrzebna matematyka, a jedynie logiczne myślenie. W przypadku, gdyby przedstawione zagadnienie miałoby być zrealizowane przy pomocy komputera programista widziałby jak te dane są wprowadzone czyli stos pewnego obiektu wypracowanie. Musiałby napisać program, który znałby odpowiedź do każdego zadania i umiałby ją porównać z tym co jest w wypracowaniu, a potem na podstawie sumy punktów wystawić ocenę.

Czy to oznacza jednak, że matematyka jest niepotrzebna podczas pisania algorytmu? W przypadku bardziej złożonych zadań rola matematyki staje się bardzo ważna. Do rozwiązania jednego problemu prowadzi bardzo dużo rozwiązań. Każde rozwiązanie pozwala na osiągnięcie z pewną szybkością oraz wymaga pewnych zasobów. Do wyliczania takich rzeczy używa się notacji O. W trakcie jej wyliczania trzeba umieć oszacować ile będzie wykonywanych danych instrukcji dla określonej ilości danych wejściowych.

Warto jednak zauważyć, że podczas nauki programowania liczy się poprawność obliczeń, a większość funkcji używane do pisania programów już się znajdują w bibliotekach, więc wystarczy tylko je wykorzystać. Oznacza to, że można pisać bardziej złożone programy bez zastanawiania się jak wygląda sumowanie albo porównywanie wyników.

Język

Programista w trakcie pisania programu posługuje się pewnym językiem programowania. Jest to dosłownie język, ponieważ wymaga on znajomości określonej puli słów, znajomości pewnej gramatyki oraz interpunkcji. Jeśli nie zna się czegokolwiek z tego próba dogadania się z komputerem może zakończyć się fiaskiem.

Można się zastanawiać jaką rolę tutaj odgrywa matematyka. Przede wszystkim matematyka wymaga pewnej dyscypliny. Zarówno podczas rozwiązywania zadania jak i pisania programu należy pamiętać o poprawnym sposobie zapisu danych, wysnuwania wniosków i wprowadzenia ewentualnych poprawek. Oznacza to, że matematyka pozwala wkroczyć w świat abstrakcyjnego myślenia.

Jednak abstrakcyjnego myślenia można się nauczyć ucząc się innego języka obcego. Próba zrozumienia gramatyki, albo zasad, które stoją za poprawnym wypowiadaniem się rozwijają zdolność abstrakcyjnego myślenia. Niektóre badania dowodzą, że osoby mówiące jednym językiem trudniej poznają kolejne zagadnienia niż osoby mówiące w conajmniej dwóch językach.

Obliczenia

Przypuśćmy, że jako programista ma się do napisania grę komputerową, która będzie odzwierciedlać świat rzeczywisty fakt poprzez wprowadzenie fizyki do gry. W tym momencie większość osób, która ma oceny mniejsze niż dobre z matematyki i z fizyki łapie się za głowę! Jednak nie ma się martwić.

Ponownie jak w przypadku pisania algorytmów matematyka pomaga, ale nie jest warunkiem koniecznym. Dzisiaj istnieje wiele różnych bibliotek, które pozwalają na wprowadzenie żądanej funkcjonalności bez zastanawiania się co to jest macierz, albo przekształcenie liniowe.

Jednak każde gotowe narzędzie niesie za sobą pewne ograniczenia. Przykładowo nie będzie możliwości zmiany wartości przyśpieszenia grawitacyjnego, więc kosmiczna wersja gry będzie bardzo przypominać tę Ziemską.

Podsumowanie

Czy w takim razie matematyka jest potrzebna? Oczywiście! Nie oznacza to jednak, że osoba dobra z matematyki będzie też świetna podczas programowania. Matematyka pomaga jedynie wkroczyć w świat programowania poprzez pokazania pewnych form abstrakcji. W zależności od tego w jakim kierunku informatyki się pójdzie należy pamiętać o głębszym poznaniu matematyki, albo fizyki.

Najważniejsze jest jednak, aby pamiętać, że można być programistą nie będąc orłem z matematyki!