Po co informatykowi matematyka

Wiele się słyszy, że informatyk powinien mieć matematykę w małym paluszku, że matematyka w informatyce jest najważniejsza. Kiedy szedłem na studia wiele osób (z branży jak i spoza niej) mówiło, że matematyka (jej znajomość) jest ważniejsza niż umiejętności programowania. Są tacy, którzy twierdzą, że matematyka w ogóle jest najważniejsza i jej znajomość ma wpływ na wszystkie dziedziny życia. Ale jak to jest z tą matematyką w informatyce? Postaram się, najlepiej jak potrafię, przedstawić fakty i wydać własną, subiektywną opinię.

Przecież to komputer liczy.

Ten pozornie bzdurnRównaniay argument przeciw ważności matematyki jest, wbrew pozorom, często poruszany. Wystarczy poczytać fora gdzie znawcy tematu wypowiadają się w dziedzinie, która ich przerasta. Trzeba uściślić kilka rzeczy, zanim w ogóle poruszę temat.

Matematyka to wiele działów. Większość osób, niemających styczności z tak zwaną matematyką wyższą, widzi królową nauk jako rachunki: dodać, odjąć, pomnożyć, podzielić, ewentualnie jakieś procenty. Ale z tymi ostatnimi już nawet bywają problemy. Niedawno emitowano reklamę pożyczki w pewnym banku, w której powiedziano, że po jakimś czasie obniżają oprocentowanie o 5% (liczby przypadkowe, nie pamiętam dokładnie, chodzi o nakreślenie problemu), a następnie znowu o 5%, więc łącznie obniżają o 10%. Jawne oszustwo. Obniżka o 5% czyli 95% z całości. Następnie znowu o 5%, czyli 95% z 95%. To nie jest 90% całości. Ale żeby się zorientować trzeba to wiedzieć. Podejrzewam, że wielu dało się nabrać. Pewnie drobnym druczkiem były podane prawdziwe wartości, jednak ktoś, kto nie zadaje sobie trudu, żeby samemu pokalkulować proste procenty, raczej tego nie przeczyta.

Większość osób, niemających styczności z tak zwaną matematyką wyższą, widzi królową nauk jako rachunki[…]

Wracając do meritum – matematyka to bardzo szeroka gałąź nauki. Nawet jej działy są tak obszerne, że powstają całe opasłe tomy, traktujące o pojedynczych zagadnieniach. Czy zatem chcąc pracować jako informatyk trzeba znać je wszystkie? Jak mawia klasyk: Otóż nie.

Chcesz być dobry? Specjalizuj się.

Circuit boardNikt nie jest dobry we wszystkim. Mówi się, że jak coś jest do wszystkiego, to jest do niczego. I jest w tym sporo racji. Podobnie jest z nauką, także z matematyką. Oczywiście, pewne podstawy trzeba znać. Dobrze też mieć ogólne rozeznanie. Jednak specjalistyczna wiedza i umiejętności przychodzą z czasem, w miarę potrzeb.

Osoby kojarzące mniej więcej jak działa komputer (albo takie które tak uważają) mówią, że istotą wiedzy informatycznej jest logika matematyczna. Tak zwany system binarny, zero jedynkowy, logika Boole’a, to terminy, które chyba każdy, kto otarł się o jakąś tam wiedzę informatyczną, kojarzy. A co to właściwie jest? I po co to, na co to komu?

Logiczne argumenty na wyższość logiki nad czymkolwiek.

układ scalonyInformatyk musi znać logikę Boole’owską. To bez dwóch zdań. Musi też, moim zdaniem znać prawa De Morgana w ujęciu logiki matematycznej, a dlaczego, o tym za chwilę. Musi umieć przekształcać i operować na zdaniach logicznych, bo to pozwala zrozumieć jak działa komputer na najniższym poziomie – prądu płynącego przez kawałek krzemu. To, że komputer coś liczy, że wyświetla obraz, że pozwala grać w zaawansowane i skomplikowane gry, to zasługa kilku (w przenośni) impulsów elektrycznych latających po kilku (bardzo w przenośni) obwodach scalonych. I wszystko z wykorzystaniem logiki zero jedynkowej: jeden – płynie, zero – nie płynie.

A po co prawa De Morgana? Po co przekształcenia? Optymalizacja. Praktycznie każde zdanie logiczne można zapisać inaczej, prościej. Czasem kryterium optymalizacyjnym nie jest uzyskanie najprostszej postaci, ale takiej, która korzysta z konkretnych bramek logicznych (NAND, czyli not and, na przykład), bo są tańsze w produkcji. A efekt ten sam. Dlatego dobry projektant podzespołów, czy układów scalonych doskonale wie, jak stosować takie przekształcenia.

Ale czy na pewno ta logika jest potrzebna?

Logika Boole’a, jakiej używają komputery jest skończona.

Kiedyś usłyszałem od pewnego profesora bardzo kontrowersyjne zdanie: Logika matematyczna jest w informatyce do niczego nie potrzebna. Na początku szok. Ale jak to? Przecież to oczywiste, że jest. Rozmawiałem na ten temat z moim kuzynem i przyjacielem Mateuszem, który z szeroko pojętą logiką ma do czynienia dużo więcej niż ja (choć informatykiem nie jest) i przedstawił on ciekawy argument przemawiający za tą tezą. Logika Boole’a, jakiej używają komputery jest skończona. Ma jakiś zbiór zasad, stworzono twierdzenia które w pewnym sensie wyczerpują temat przekształceń potrzebnych do działania. Informatyka, czy właściwie komputery, potrzebują więc tylko tego wycinka. Sama logika matematyczna zaś rozwija się dalej, powstają nowe systemy, nowe twierdzenia, które bezpośrednio nie dotykają komputerów jakie znamy dziś. Może więc teza profesora ma jakiś głębszy sens?

Informatyk informatykowi nierówny.

Celowo w poprzednim akapicie doprecyzowałem, że chodziło mi przede wszystkim o komputery, niekoniecznie o całą informatykę. To bowiem, trochę jak matematyka, choć wydaje mi się, że wciąż na mniejszą skalę, jest temat rzeka. Wielu uczniów w szkołach narzeka, że na informatyce (przynajmniej na początku) prawie nie dotykają komputerów. Przynajmniej ja tak miałem.W istocie po latach dostrzegam swój błąd. Stwierdzam teraz z całą stanowczością: by być informatykiem komputer nie jest niezbędny.

Trzeba się pochylić nad samym pojęciem. Według definicji informatyka to nauka zajmująca się przede wszystkim przetwarzaniem danych. Oczywiście, także w ujęciu technologicznym, także wykorzystując narzędzia komputerowe, zajmuje się też wytwarzaniem systemów mających to przetwarzanie ułatwiać. Ale w centrum zainteresowań leży informacja, dane, a nie komputer, który jest tylko narzędziem.

Math bookDziałów informatyki jest coraz więcej, bo jest ona coraz powszechniej wykorzystywana we wszystkich dziedzinach życia, pracy i nauki. Stąd też różne zapotrzebowanie informatyków na specjalistyczną wiedzę matematyczną. Statystyka na przykład bardziej przyda się przy data miningu niż przy programowaniu (choć i tam może znaleźć zastosowanie). Wykonując analizę projektu informatycznego raczej nie będziemy liczyć całek (chyba, że dla relaksu).

Więc matematyka w informatyce jest potrzebna, czy nie?

W mojej ocenie – tak. Informatyka była początkowo zaliczana do gałęzi matematyki. Dopiero jej rozrost, spowodowany popularnością przyczynił się do tego, że dziś mówimy o niej jako o czymś osobnym. Jednak w swoich korzeniach wciąż sięga do tego matematycznego dziedzictwa, które jest podstawą, bez której nie ma racji bytu.

Kilka porad dla przyszłych studentów.

O matematyce można by pisać i pisać. Ludzie mądrzejsi ode mnie pisali całe serie książek, do nich więc odsyłam wszystkich, których tematyka zainteresowała.

Czego się więc uczyć, by radzić sobie w informatyce? Nie musisz dziś umieć mnożyć 5 cyfrowe liczby w głowie w ułamku sekundy, od tego masz kalkulator. Warto jednak, nawet już w liceum, rozwiązywać skomplikowane zadania, niekoniecznie obliczeniowo, ale takie, gdzie trzeba się zastanowić jak uzyskać wynik. Dobre są też zadania z treścią, uczą wyciągania szybko przydatnych informacji – w życiu rzadko będziemy liczyli suche dane – one zawsze są umieszczone w jakimś kontekście. Dla bardziej ambitnych polecałbym zainteresować się matematyką dyskretną i modelowaniem matematycznym. Praktycznie na każdych studiach technicznych jest też algebra i analiza matematyczna, warto więc, może już po maturze (bo to chyba nie jest ujęte w programie nauczania) ogarnąć sobie całki i pochodne.

O matematyce można by pisać i pisać. Ludzie mądrzejsi ode mnie pisali całe serie książek, do nich więc odsyłam wszystkich, których tematyka zainteresowała. Tym zaś, którzy z matematyką są na bakier życzę, by mieli w swoim otoczeniu kogoś, kto uchroni ich przed takimi reklamami jak ta wspomniana na początku i za nich pokalkuluje, czy przypadkiem nie nabijają was w butelkę…

Autor: Kamil Chmielewski

Inżynier informatyki, specjalność systemy informatyczne - inżynieria systemów. Student pierwszego semestru magisterki na Politechnice Wrocławskiej. Fan gier RPG i strategii.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *