Informatyka i nauki komputerowe.
Czym zajmuje się informatyka?
Stara definicja encyklopedyczna głosi:
„Informatyka zajmuje się całokształtem przechowywania, przesyłania, przetwarzania i interpretowania informacji. Wyróżnia się w niej dwa działy, dotyczące sprzętu i oprogramowania”.
Większość z tego, co robią informatycy nie bardzo do tej definicji pasuje.
Nowsza definicja, opracowana w 1989 roku przez ACM, mówi:
„Informatyka to systematyczne badanie procesów algorytmicznych, które charakteryzują i przetwarzają informację, teoria, analiza, projektowanie, badanie efektywności, implementacja i zastosowania procesów algorytmicznych. Podstawowe pytanie informatyki to: co można (efektywnie) zalgorytmizować”.
Najważniejsze organizacje profesjonalne:
ACM, Association for Computing Machinery. Największa i najstarsza (1947) organizacja skupiająca informatyków.
IEEE Computer Society - IEEE jest największym stowarzyszeniem zawodowym na świecie.
American Society for Information Science, stowarzyszenie nauk informacyjnych.
Czym zajmuje się informatyka?
Algorytmika - fundament informatyki, wiedza o sposobach rozwiązywania zagadnień, czyli konstruowaniu algorytmów.
Zadania algorytmiczne - czyli zadania, dla których znamy sposób rozwiązania.
Algorytmy efektywne - czyli takie, które dają rozwiązanie przed końcem świata.
Złożoność obliczeniowa algorytmów - ocena, ile trzeba będzie wykonać obliczeń.
Testowanie i dowodzenie poprawności algorytmów.
Algorytmy heurystyczne: metody bez gwarancji na znalezienie rozwiązania (sztuczna inteligencja).
Złożoność: N elementów: sortowanie listy T ~ N2 lub N log N
Problemy NP-trudne, czas T > Nk dla dowolnego k. Próby rozwiązania takich problemów przypominają troche konstruowanie perypetuum mobile.
Problem wędrującego komiwojażera: jak znaleźć najkrótszą drogę, łączącą N miast odwiedzając każde tylko jeden raz?
T ~ N! = N(N-1)(N-2)... 3·2·1 rośnie bardzo szybko, np. 100! ~10158
Klasy złożoności problemów i problemy „NP-zupełne”: wszystkie można by rozwiązać w łatwy sposób, gdyby chociaż jeden dał się łatwo rozwiązać!
Struktury danych: liczby, tablice, wektory, rekordy, listy, stosy, kolejki, drzewa, liście drzewa, węzły potomne, grafy, diagramy.
Teoria języków programowania: specyfikacja, procesory, automaty skończone (automaty Turinga).
Organizacja i architektury systemów komputerowych, systemów operacyjnych i sieci komputerowych, teoria baz danych.
Zastosowania komputerów, czyli to co tygrysy lubią najbardziej?
Zwykle nie zajmują się nimi informatycy.
Literatura
David Harel, Rzecz o istocie informatyki (Wyd. Naukowo-Techniczne, Warszawa 1992)
Bardzo dobry wstęp do „prawdziwej” informatyki.