<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:plblog.danieljanus.pl,2019:category:informatyka</id>
  <title>Daniel Janus – informatyka</title>
  <link href="http://plblog.danieljanus.pl/category/informatyka/"/>
  <updated>2011-05-07T00:00:00Z</updated>
  <author>
    <name>Daniel Janus</name>
    <uri>http://danieljanus.pl</uri>
    <email>dj@danieljanus.pl</email>
  </author>
  <entry>
    <id>tag:plblog.danieljanus.pl,2011-05-07:post:informatyka-jest-galezia-matematyki</id>
    <title>Informatyka jest gałęzią matematyki</title>
    <link href="http://plblog.danieljanus.pl/informatyka-jest-galezia-matematyki/"/>
    <updated>2011-05-07T00:00:00Z</updated>
    <content type="html">&lt;div&gt;&lt;p&gt;&lt;a href="http://geekgirls.pl/2011/05/kobieta-tworzaca-internet/"&gt;Claygirl pisze na blogu GeekGirls&lt;/a&gt;, że wbrew powszechnemu mniemaniu, informatyka to nie matematyka – i że informatykowi znajomość matematyki jest potrzebna w bardzo ograniczonym zakresie. Zdziwiłem się, bo jestem odmiennego zdania i zawsze wydawało mi się, że to właśnie pogląd, że informatyka &lt;em&gt;jest&lt;/em&gt; częścią matematyki, jest w mniejszości... Zapewne jednak większość klepaczy kodu rzadko zadaje sobie to pytanie. Szkoda, bo warto stawiać fundamentalne pytania o to, czym w istocie jest to, czym się zajmujemy.&lt;/p&gt;&lt;p&gt;Temat jest mi bliski, postaram się więc w tym wpisie uzasadnić swoją opinię. Żeby móc sensownie odpowiedzieć na nasze pytanie, powinniśmy wpierw zdefiniować, co rozumiemy przez informatykę, a co przez matematykę. Zaczniemy więc od definicji encyklopedycznych.&lt;/p&gt;&lt;h2 id="wikipedia-dixit"&gt;Wikipedia dixit&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://pl.wikipedia.org/wiki/Informatyka"&gt;Informatyka&lt;/a&gt; – dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji, a w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Myślę, że większość z nas zgodziłaby się z takim opisem. Aplikacje webowe, bazy danych, systemy operacyjne... czymkolwiek się zajmujemy, zawsze ma to związek z przetwarzaniem informacji. A matematyka?&lt;/p&gt;&lt;p&gt;(Zanim zajrzymy do Wikipedii, zachęcam do pokuszenia się o własną definicję. Może to przyprawić o ból głowy, bo jak objąć kilkoma słowami całe to bogactwo abstrakcyjnych bytów, jakimi matematyka się zajmuje?  Liczby, zbiory, klasy, relacje, funkcje, punkty, przestrzenie, formuły, kategorie...)&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;a href="http://pl.wikipedia.org/wiki/Matematyka"&gt;Matematyka&lt;/a&gt; – nauka dostarczająca narzędzi do otrzymywania ścisłych wniosków z przyjętych założeń, zatem dotycząca prawidłowości rozumowania.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id="ścisłość-rozumowania-i-abstrakcje"&gt;Ścisłość rozumowania i abstrakcje&lt;/h2&gt;&lt;p&gt;Ta definicja w ogóle prześlizguje się nad owym bogactwem; jest szersza, bardziej pierwotna i może budzić sprzeciw. Zdaje się sugerować, że ilekroć myślimy o czymś – &lt;em&gt;czymkolwiek&lt;/em&gt; – w sposób uporządkowany, zajmujemy się matematyką!  A jednak wielu matematyków uważa, że to właśnie w myśleniu tkwi sedno ich dziedziny. Włodek Holsztyński ujmuje to w swoim świetnym &lt;a href="http://knol.google.com/k/wlodzimierz-holsztynski/matematyka-esej/1jxfhq4x4sw0j/93#"&gt;eseju&lt;/a&gt; jeszcze zwięźlej:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Matematyka jest sztuką myślenia&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Gdzie jednak przy takim podejściu postawić granicę pomiędzy matematyką a innymi naukami?  Czy fizyka jest częścią matematyki, czy odrębną dziedziną wiedzy, która tylko korzysta z metod matematycznych? Wspominałem wcześniej o bytach abstrakcyjnych: wszyscy mamy mniej więcej zbliżone pojęcie na temat tego, czym jest liczba 7, mimo że taki obiekt nie istnieje fizycznie w otaczającym nas świecie. Wydaje się, że abstrakcyjność jest wpisana w naturę matematyki, i można ją dopisać do definicji. Wspomniany artykuł w Wikipedii zawiera inne próby zdefiniowania tej dziedziny przez sławnych matematyków, z których kilku o tym wspomina. Dirac: „Matematyka jest narzędziem stworzonym specjalnie do wszelkich abstrakcyjnych koncepcji, i nie ma ograniczeń dla jej potęgi w tym zakresie”.&lt;/p&gt;&lt;p&gt;A Poincaré mówi: „sztuka nadawania takich samych nazw różnym rzeczom”. Innymi słowy, zdolność dostrzegania podobieństw i abstrahowania od różnic. To jabłko jest czymś innym niż tamta gruszka, ale mają ze sobą coś wspólnego: liczność – tak zapewne brzmiało pierwsze, doniosłe odkrycie matematyczne.&lt;/p&gt;&lt;h2 id="matematyka-w-szkole"&gt;Matematyka w szkole&lt;/h2&gt;&lt;p&gt;...jest tylko drobnym wycinkiem wszystkich tych działów. To oczywiste, w końcu poświęca się jej ograniczoną ilość czasu. Ale za duży nacisk kładzie się na ich przedstawienie, a za mały na &lt;em&gt;rozumienie&lt;/em&gt;. Nie jest ważne, żeby wiedzieć, ile jest siedem razy dziewięć. Ważne, żeby umieć w razie potrzeby się zastanowić i dojść do prawidłowej odpowiedzi. Rzadko pokazuje się dowody twierdzeń (i potem uczniowie panicznie boją się słowa „udowodnij”), a szkoda!  Nie jest trudno zobaczyć, dlaczego twierdzenie Pitagorasa jest prawdziwe, albo dlaczego mnożenie liczb naturalnych jest przemienne. A tak właśnie ćwiczy się umiejętność &lt;em&gt;myślenia&lt;/em&gt;.&lt;/p&gt;&lt;h2 id="a-informatyka?"&gt;A informatyka?&lt;/h2&gt;&lt;p&gt;Clay pisze:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Ale całe dziesiątki poziomów abstrakcji wyżej siedzą sobie systemy operacyjne i maszyny wirtualne z którymi większość informatyków widuje się najczęściej. Informatyków – programistów języków wysokopoziomowych (takich jak Java, C#, Ruby, Python etc), którzy z matematyką muszą się znać tylko po to, żeby umieć myśleć logicznie i na przykład oszacować czas działania napisanego właśnie programu.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Już samo słowo „poziomy abstrakcji” kojarzy się z tym, o czym pisałem wcześniej. Oto mój program, mam w nim jakąś klasę.&lt;/p&gt;&lt;pre&gt;&lt;code class="hljs java"&gt;&lt;span class="hljs-keyword"&gt;public&lt;/span&gt; &lt;span class="hljs-keyword"&gt;class&lt;/span&gt; &lt;span class="hljs-title class_"&gt;Osoba&lt;/span&gt; {
    String imie, nazwisko;
    &lt;span class="hljs-type"&gt;int&lt;/span&gt; wiek;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ona modeluje jakiś obiekt rzeczywisty, ale sama w sobie jest równie &lt;em&gt;abstrakcyjnym&lt;/em&gt; bytem jak liczba 7. Jest napisana w języku Java -- mogę sięgnąć po formalny opis jego gramatyki i semantyki i &lt;em&gt;ściśle opisać&lt;/em&gt;, czym jest.  I wreszcie, pisząc taki kod, &lt;em&gt;pomyślałem&lt;/em&gt; o tym, co poszczególne osoby mają wspólnego i &lt;em&gt;abstrahowałem&lt;/em&gt; od nieistotnych dla mnie różnic między nimi.&lt;/p&gt;&lt;p&gt;Czy nie tym właśnie zajmuje się matematyka? W jaki sposób mój program albo język programowania jest mniej obiektem matematycznym, niż trójkąt albo zbiór {4, 42}?&lt;/p&gt;&lt;h2 id="nie-we-wszystkim-jesteśmy-dobrzy"&gt;Nie we wszystkim jesteśmy dobrzy&lt;/h2&gt;&lt;p&gt;Pomijając terminologię, trzeba się zgodzić z tezą artykułu Clay: fakt, że nie czujemy się mocni w jednej gałęzi matematyki (nazwijmy ją „licealną”), wcale nie musi oznaczać, że nie rozwiniemy skrzydeł w innej. Nikt nie jest omnibusem, nierozumienie czegoś nie jest powodem do wstydu. Srinivasa Ramanujan, bodaj największy geniusz matematyczny ubiegłego stulecia, wniósł gigantyczny wkład do teorii liczb i wielu innych dziedzin... ale nie miał zielonego pojęcia, co to jest funkcja zmiennej zespolonej!&lt;/p&gt;&lt;p&gt;Tak i my nie musimy tego wiedzieć, pisząc kod czy grzebiąc w bebechach systemu. Miejmy jednak świadomość, że w istocie uprawiamy matematykę, która jest sztuką myślenia – i cieszmy się tym.&lt;/p&gt;&lt;/div&gt;</content>
  </entry>
</feed>
