Przedmioty |
|
|
|
Instytut Informatyki
Wydział Matematyki i Informatyki
Uniwersytet Jagielloński w Krakowie
ul. Łojasiewicza 6, 30-348 Kraków
tel. (0-12) 664 66 33, fax (0-12) 664 66 73
www.ii.uj.edu.pl
|
|
|
» Studiuj w Instytucie Informatyki » Informatyka Teoretyczna
Informatyka Teoretyczna
Absolwent
powinien być wysoko wykwalifikowanym specjalistą z zakresu informatyki.
Gruntowne i wszechstronne podstawy informatyki oraz tej części matematyki,
która wpisuje się w te podstawy dają absolwentowi tej
specjalności wyjątkową elastyczność zarówno w zakresie kontynuowania
nauki – studia II stopnia i III stopnia (studia doktoranckie) - jak
i podejmowania ambitnych, twórczych i niekonwencjonalnych
wyzwań w pracy zawodowej -czy to we własnej firmie, czy w międzynarodowych,
renomowanych korporacjach.
Informatyka
teoretyczna daje każdemu absolwentowi znakomite podstawy dla szybkiego
i skutecznego uaktualniania swojej wiedzy i praktycznych umiejętności,
co w tej dziedzinie jest szczególnie ważne i konieczne. Należy
podkreślić, że dogłębna znajomość teorii pozwala zrozumieć
nie tylko JAK dany model czy program działa, ale przede wszystkim -
DLACZEGO działa. A to pozwala już samodzielnie tworzyć nowe narzędzia,
metody, modele, a nawet teorie. Nie poprzestajemy na przedstawianiu
łatwych do obserwacji, powierzchownych własności i wyłącznie
praktycznych zastosowań informatyki.
Inni wiedzą
–absolwent informatyki teoretycznej rozumie!
Absolwent będzie
dysponował WIEDZĄ OPERACYJNĄ, co oznacza, że nabyte wiadomości
teoretyczne znajdą konkretne zastosowania w rzeczywistych, praktycznych
zagadnieniach informatycznych.
Na przykład:
- Teoria automatów
i języków formalnych zawiera podstawowe metody, algorytmy, modele
i techniki dla projektowania kompilatorów oraz wszelkiego rodzaju
parserów, niezbędne także przy projektowaniu systemów informatycznych,
zwłaszcza systemów wbudowanych oraz przy pewnych aspektach instrumentacji
kodu na potrzeby testowania (np. szczególnie istotne to jest w przypadku
testowania mutacyjnego)
- Kryptografia
i kryptologia to źródło wiedzy niezbędnej przy implementacji,
weryfikacji, bądź projektowaniu różnorodnych funkcji jednokierunkowych,
czy też nowych protokołów kryptograficznych. Połączenie teorii
z projektowanym laboratorium systemów wbudowanych stanowić będzie
unikalną jednostkę w skali kraju.
- Teoria kodów
pozwala dogłębnie zrozumieć zawiłości współczesnych systemów
telekomunikacyjnych, by projektować i implementować nowe, a także
świadomie wykorzystywać istniejące protokoły, z pełnym rozeznaniem
ich możliwości i ograniczeń.
- Kognitywistyka
pozwala ogarnąć problematykę związaną z funkcjonowaniem i naśladowaniem
ludzkiego umysłu. Dzięki niej można dostrzec i wykorzystywać związki
ludzkiego umysłu z tym, co stworzyła informatyka. W konsekwencji możliwe
staje się implementowanie niekonwencjonalnych rozwiązań, np. systemów
zdolnych do introspekcji i do samoczynnej adaptacji do zmieniających
się warunków.
- Niestandardowe
paradygmaty programowania (jak programowanie funkcyjne, programowanie
w logice, programowanie aspektowe) pozwalają rozwiązywać problemy
przy pomocy lepiej dobranych "narzędzi", wykraczając poza
utarte schematy. Można tu wymienić np. oprogramowanie sprzętu telekomunikacyjnego
(język Erlang), oprogramowanie aparatury pomiarowej (środowisko LabVIEW),
symulacje finansowe (język K).
- Teoria sieci
Petri’ego jest niezbędna przy projektowaniu, modelowaniu i weryfikacji
systemów współbieżnych oraz wszelkich praktycznych aspektów
procesów współbieżnych.
- Teoria grafów,
matematyka dyskretna stanowią niezbędną wiedzę przy projektowaniu
efektywnych zestawów przypadków testowych w procesie testowania oprogramowania,
jeśli wprowadzamy kryteria pokrycia kodu, pokrycia rozgałęzień itd.
A także przy zagadnieniach takich jak zliczanie obiektów kombinatorycznych
(grafy, drzewa, ciągi itp.) oraz przy obliczaniu złożoności obliczeniowej
algorytmów - np. przy pomocy rekurencji lub funkcji tworzących.
- Statystyka
określa niezbędne narzędzia dla pracy ukierunkowanej na zapewnienie
jakości, przy projektowaniu systemów zarządzania jakością
oraz przy monitorowaniu i podnoszeniu tej jakości w procesie produkcji
oprogramowania.
|