Tresci programowe i literatura do przedmiotów wybranych na

Transkrypt

Tresci programowe i literatura do przedmiotów wybranych na
Treści programowe i literatura do przedmiotów wybranych na
Egzamin kierunkowy i sprawdzian kwalifikacyjny na II stopień studiów stacjonarnych
dla kierunku Informatyka
J˛ezyki i metody programowania
Typy stałych i zmiennych. Instrukcje sterujace.
˛ Tablice. Funkcje. Wskaźniki. Struktury i unie. Operacje na bitach. Definiowanie typów. Operatory. Preprocesor. Klasy pami˛eci. Dynamiczna alokacja pami˛eci. Biblioteka standardowa. Referencje w
j˛ezyku C++, elementy składowe klas. Kompozycja i dziedziczenie, dziedziczenie wielobazowe, polimorfizm. Konstruktory
i destruktory. Przecia˛żanie funkcji i operatorów. Kopiowanie obiektów klas alokujacych
˛
pami˛eć. Operatory rzutowania w
C++. Mechanizmy RTTI. Wyjatki.
˛ Kontenery, lista i wektor. Wielokrotne użycie kodu kontenera. Iteratory. Szablony funkcji i klas. Szablony kontenerów i iteratorów. Kopiowanie kontenerów, hierarchie obiektów umieszczanych w kontenerze.
Biblioteka STL. Podstawowe szablony i iteratory (string, vector, list, map). Algorytmy STL. Biblioteka strumieni w C++.
Literatura:
[1] Kernighan B., Ritchie D.: J˛ezyk C, WNT, Warszawa 2004.
[2] Stroustrup B.: J˛ezyk C++, WNT, Warszawa 2002.
[3] Eckel B.: Thinking in C++, Helion, Gliwice 2004.
[4] Gr˛ebosz J.: Symfonia C++, Oficyna Kallimach, Kraków 2004.
[5] Gr˛ebosz J.: Pasja C++, Oficyna Kallimach, Kraków 2004.
Algorytmy i struktury danych
Algorytm i strategie konstruowania algorytmów. Złożoność obliczeniowa algorytmów. Podstawowe struktury danych: tablice, listy, kolejki, stosy, inne. Rekurencja i usuwanie rekurencji. Tablice z haszowaniem. Podstawowe algorytmy sortowania wewn˛etrznego oraz szybkie algorytmy sortowania. Sortowanie zewn˛etrzne. Drzewa, metody przeszukiwania drzew,
problem wyważania drzew, drzewa BST, drzewa AVL, drzewa czerwono-czarne, inne rodzaje drzew. Złożone struktury
danych, kopce. Przeszukiwanie grafów, przeglad
˛ algorytmów grafowych. Wyszukiwanie wzorców tekstowych.
Literatura:
[1] Aho A.V., Hopcroft, J.E., Ullman J.D.: Projektowanie i analiza algorytmów komputerowych, PWN, Warszawa 1983.
[2] Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT, Warszawa 1996.
[3] Cormen T.H., Leiserson C.E., Rivest R.L.: Wprowadzenie do algorytmów, WNT, Warszawa 1997.
Wst˛ep do systemu UNIX
Uwierzytelnianie użytkowników w systemie typu Unix. Mechanizmy konfiguracji powłoki Uniksowej. Uniksowe prawa
dost˛epu. Komunikacja mi˛edzyprocesowa w systemie Unix. Zarzadzanie
˛
systemem plików w Uniksie. Sekwencja startowa
systemu typu Unix. Podsystem procesów w systemie Unix. Podstawowe algorytmy szyfrujace.
˛ Architektura systemu Unix.
Podstawowe elementy budowy jadra
˛ Unix. Zarzadzanie
˛
plikami w Uniksie. System monitorowania i rejestrowania zdarzeń
w Uniksie. Podstawy tworzenia skryptów Sh.
Literatura:
[1] Bach M. J.: Budowa systemu operacyjnego Unix, WNT, 1995.
[2] Welsh M., et al.: Linux, O’Reilly/RM, 2000.
[3] Siever E.: Linux podr˛ecznik użytkownika, O’Reilly/RM, 1999.
1
Programowanie obiektowe
Paradygmat programowania obiektowego w j˛ezyku Java. Platforma Java. Maszyna wirtualna. Obiekty i referencje. Przydział
pami˛eci i mechanizm automatycznego usuwania niepotrzebnych obiektów. Składnia j˛ezyka. Tablice. Klasy i ich składowe:
pola, metody, metody statyczne. Polimorfizm w j˛ezyku Java. Konstruktory, klonowanie obiektów. Interfejsy i klasy abstrakcyjne. Zastosowania klas wewn˛etrznych i klas zagnieżdżonych. Stosowanie wyjatków.
˛
Watki,
˛
synchronizacja i wzajemne
wykluczanie, monitory. Podstawowe kontenery w j˛ezyku Java. Biblioteka AWT, hierarchie komponentów. Zarzadzanie
˛
układem komponentów. Obsługa zdarzeń operacje graficzne. Animacja. Biblioteka Swing: elementy składowe.
Literatura:
[1] Eckel B.: Thinking in Java, Helion, Gliwice 2003.
[2] Horstmann C., Cornell G.: Java 2 Podstawy, Helion, Gliwice 2003.
[3] http://java.sun.com
Podstawy elektroniki cyfrowej
Układy cyfrowe małej i średniej skali integracji TTL oraz CMOS – bramki, przerzutniki, rejestry, liczniki, multipleksery,
dekodery, przerzutniki monostabilne, p˛etla PLL. Uruchamianie i testowanie układów cyfrowych – standard JTAG. Programowalne układy logiczne. J˛ezyk opisu sprz˛etu VHDL. Podstawy cyfrowego przetwarzania sygnałów. Konwersja analogowocyfrowa i cyfrowo-analogowa. Mikrokontroler 8051. Tryby pracy procesora 486.
Literatura:
[1] Kulka Z., Libura A., Nadachowski M.: Przetworniki analogowo-cyfrowe i cyfrowo-analogowe, WKiŁ, Warszawa, 1987.
[2] Łuba T., Jasiński K., Zbierzchowski B.: Specjalizowane układy cyfrowe w strukturach PLD i FPGA, WKŁ, Warszawa,
1997.
[3] Pieńkoś J., Turczyński J.: Układy scalone TTL w systemach cyfrowych, WKiŁ, Warszawa, 1986.
[4] Rydzewski A.: Mikrokomputery jednoukładowe rodziny MCS-51, WNT, Warszawa, 1992.
[5] Turczyński M., Goczyński R.: Mikroprocesory 80286, 80386 i i486, KOW ”Help”, Warszawa, 1991.
[6] Wrona W.: VHDL j˛ezyk opisu i projektowania układów cyfrowych, Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, Gliwice, 1998.
Architektury komputerów
Historia rozwoju komputerów. Hierarchiczna struktura komputerów. Architektura von Neumanna. Reprezentacja danych w
systemie komputerowym: system dwójkowy, ósemkowy, szestnastkowy, kod uzupełnień do dwóch – przeliczanie, zapis liczb
zmiennoprzecinkowych. Podstawy budowy i organizacji procesora. Architektura zbioru rozkazów. Przetwarzanie rozkazów.
Organizacja pami˛eci i adresowanie. Poj˛ecie przerwania. J˛ezyk asembler. Analiza i pomiar wydajności komputera.
Literatura:
[1] Null L., Lobur J.: Struktura organizacyjna i architektura komputerów, Helion 2004
[2] Tanenbaum A.S.: Strukturalna organizacja systemów komputerowych, Helion 2006
Podstawy grafiki komputerowej
Obszary zastosowań grafiki komputerowej i ich charakterystyka. Psychologia widzenia i percepcji obrazu, kształtu i ruchu
dla człowieka i porównawczo dla zwierzat.
˛ Sprz˛et komputerowy niezb˛edny dla realizacji zaawansowanej grafiki komputerowej (zaawansowane urzadzenia
˛
I/O: skanery 3D, spacemouse, dataglove itd.). Konstrukcja systemów Virtual Reality i
ich zastosowanie. Procesory graficzne – koncepcja przetwarzania (graphics pipeline), architektury procesorów graficznych
(GPU) i wielopotokowych kart graficznych, konstrukcje stacji roboczych i „super systemów” dla potrzeb grafiki komputerowej. Algorytmy i metody zrównoleglania obliczeń w grafice komputerowej. Reprezentacja obiektów geometrycznych
stosowanych w grafice komputerowej – stosowane w profesjonalnych systemach prymitywy graficzne i ich reprezentacja
matematyczna (obiekty prosto- i krzywokreślne – krzywe Hermite’a Bezier,a, NURBS), modele obliczeniowe złożonych
obiektów, ciecze, gazy, modele hierarchiczne w grafice komputerowej 3D, zasady konstrukcji sceny. Transformacje geometryczne. Trudności obliczeniowe transformacji. Obliczanie wizualizacji obiektów i scen graficznych w układzie 2D i 3D.
Modele oświetlenia, koloru, przeźroczystości i przedstawienia powierzchni. Tekstury – konstruowanie tekstur. Animacja
2
(grafika 4D) – problemy i stosowane metody przedstawiania dynamiki obiektów, modelowanie i liczenie dynamiki (szkielety i pokrycia), definiowanie środowisk, edytory animacji. Modelowanie złożonych obiektów, systemów obiektów i struktur
(np. twarz ludzka). Fraktale. Przeglad
˛ i analiza porównawcza profesjonalnych systemów do tworzenie grafiki komputerowej.
Najważniejsze konferencje i ośrodki zajmujace
˛ si˛e grafika˛ komputerowa w Polsce i na Świecie.
Literatura:
[1] Hearn D., Baker M. P.: Computer Graphics with OpenGL. 3/e, Pearson/Prentice Hall, 2004.
Metody numeryczne
Podstawowe poj˛ecia i informacje dotyczace
˛ obliczeń numerycznych. Źródła bł˛edów obliczeń numerycznych, uwarunkowanie zadania i sposoby jego oceny, stabilność numeryczna algorytmów, poprawność numeryczna algorytmów, złożoność
obliczeniowa. Interpolacja wielomianowa: wielomian interpolacyjny Lagrange’a, postać Newtona wielomianu interpolacyjnego, bład
˛ interpolacji, efekt Runge’go, interpolacja Hermite’a, i oszacowanie jej bł˛edu. Interpolacja funkcjami sklejanymi
wraz z oszacowaniem bł˛edu. Aproksymacja: aproksymacja średniokwadratowa, aproksymacja jednostajna. Całkowanie numeryczne: poj˛ecie kwadratury liniowej, kwadratury interpolacyjne (Lagrange’a i Hermite’a), kwadratury Newtona - Cotesa,
rzad
˛ kwadratury, bł˛edy, zbieżność ciagu
˛ kwadratur, przyspieszenie zbieżności. Metody ekstrapolacyjne – metoda Romberga,
procedury automatycznego całkowania. Rozwiazywanie
˛
równań i układów równań nieliniowych: charakterystyka metod iteracyjnych stacjonarnych i niestacjonarnych, metoda Newtona, metoda siecznych i jej modyfikacje, problem zbieżności. Rozwiazywanie
˛
układów równań liniowych: rozkład LDU, metoda eliminacji Gaussa i jej warianty, obliczanie wyznacznika i
odwracanie macierzy, metody iteracyjne – Jacobiego, Gaussa-Seidla. Wyznaczanie wartości i wektorów własnych macierzy.
Równania różniczkowe zwyczajne: zagadnienie poczatkowe
˛
Cauchy’ego, metody jednokrokowe, metody wielokrokowe.
Obliczenia symboliczne. Pakiety matematyczne: MATHCAD, MATHEMATICA, MATLAB.
[1] Kincaid D., Cheney W.: Analiza numeryczna, WNT, Warszawa 2006.
[2] Björck A., Dahlquist G.: Metody numeryczne, PWN, Warszawa 1987.
Algorytmy decyzyjne i teoria złożoności
Proces podejmowania decyzji. Model matematyczny procesu decyzyjnego. Programowanie liniowe i całkowitoliczbowe.
Proces wieloetapowy. Programowanie dynamiczne. Schemat podziału i ograniczeń oraz algorytmy oparte na tym schemacie.
Problem komiwojażera. Problemy grafowe (kolorowanie grafu, maksymalna klika, izomorfizm). Planowanie przedsi˛ewzi˛eć.
Metoda ścieżki krytycznej. Problemy szeregowania zadań, ich klasyfikacja i wybrane algorytmy. Heurystyczne metody
rozwiazania
˛
problemów. Algorytmy przeszukiwania sasiedztwa.
˛
Algorytmy ewolucyjne. Teoria gier i decyzji. Symulowane
wyżarzanie. Podstawowe poj˛ecia zwiazane
˛
ze złożonościa˛ obliczeniowa.˛ Klasy złożoności problemów decyzyjnych. Modele
obliczeń. Techniki dowodzenia NP-zupełności i NP-trudności problemów.
Literatura:
[1] Jarosław Arabas: Wykłady z algorytmów ewolucyjnych. WNT Warszawa 2004.
[2] Tadeusz Sawik: Badania operacyjne dla inżynierów zarzadzania.
˛
Wydaw. AGH, Kraków 1998.
[3] Bolesław Mikołajczak, Janusz Stokłosa: Złożoność obliczeniowa algorytmów. Wydaw. PP, Poznań 1984.
Sieci komputerowe
Transmisja szeregowa i równoległa. Transmisja modemowa, proste protokoły modemowe. Topologia sieci komputerowych,
model warstwowy OSI/ISO. Metody dost˛epu do warstwy fizycznej (MAC). Zasady działania i konfigurowania sieci Ethernet.
Sieci rozległe, modemy, ISDN, warstwa sieciowa w sieciach rozległych – X.25 i Frame Relay. Protokoły rodziny TCP/IP.
Protokół IP: adresy IP. Protokół UDP i protokół TCP. Warstwa aplikacji – protokoły BOOTP, DHCP, DNS, Telnet, FTP, RPC,
NFS, SMTP, SNMP. Protokół DNS, PPP. Hierarchiczna organizacja serwerów nazw. Internet, intranet. Organizacja sieci
w systemie operacyjnym Windows. Programowanie transmisji w sieciach: gniazda, przegródki (mailslots), potoki (pipes).
Urzadzenia
˛
i protokoły do współpracy mi˛edzysieciowej: mosty, bramy itd. Konfigurowanie routerów. Bezpieczeństwo w
sieciach, szyfrowanie z kluczem publicznym, ściany ogniowe. Transmisja satelitarna. Protokoły bezprzewodowe – WAP.
[1] J.F.Kurose, K.W.Ross: Sieci komputerowe, wydanie 3-cie, Helion, Gliwice 2006.
[2] A.Tanenbaum: Sieci komputerowe, Helion, Gliwice 2004.
3
Techniki internetowe i multimedialne
Podstawowe informacje o sieci Internet: IP (TCP, UDP, ICMP); DNS usługi sieciowe; adresy w sieci; Universal Naming
Convention, Uniform; resource Locator, Uniform Resource Identifier. Protokół HTTP. Przegladarki
˛
WWW: współpraca
przegladarki
˛
z serwerem; wyszukiwarki i wyszukiwanie informacji. Projektowanie stron WWW: koncepcja, struktura logiczna, tekst, grafika, tło, kolory. J˛ezyk XHTML: znaczniki i polecenia.; formatowanie tekstu; grafika; odnośniki; tworzenie
map odnośników; tabele; przyciski i formularze. Arkusze stylów, j˛ezyk CSS. Programowanie aplikacji internetowych: programowanie po stronie klienta (j˛ezyk JavaScript); programowanie po stronie serwera (j˛ezyk PHP); walidacja formularzy;
przetwarzanie danych z formularzy. Metaj˛ezyki SGML, XML, i ich zastosowania: różnice pomi˛edzy HTML, a XHTML;
stylizacja dokumentów XML; walidacja. Przesyłanie wiadomości email: protokół SMTP. Multimedia w Internecie: techniki
kompresji i przesyłania obrazów, dźwi˛eku i sekwencji wideo; multimedia na stronach WWW.
[1] Schultz D., Cook C.: HTML, XHTML i CSS. Nowoczesne tworzenie stron WWW. Helion, Gliwice 2008.
[2] White E., Eisenhamer, J.D.: PHP 5 w praktyce. Helion, Gliwice 2007.
[3] Tanenbaum A.S.: Sieci komputerowe. Helion, Gliwice 2004.
Przetwarzanie obrazów cyfrowych
Budowa narzadu
˛ wzroku człowieka; elementy sztucznego systemu wizyjnego. Pozyskiwanie obrazów cyfrowych – urzadze˛
nia; próbkowanie; kwantyzacja. Podstawowe metody przetwarzania obrazów cyfrowych: poprawa jakości obrazu; operacje
arytmetyczne; filtracja i usuwanie zakłóceń; detekcja kraw˛edzi. Operacje na obrazach binarnych; etykietowanie; operacje
logiczne. Metody morfologiczne. Analiza obrazów cyfrowych: segmentacja; analiza obrazów barwnych; wyznaczanie parametrów obiektów; współczynniki kształtu; niezmienniki momentowe; metody rozpoznawania obiektów; analiza sceny.
Transformacja Hougha. Przetwarzanie obrazów w dziedzinie cz˛estotliwościowej; transformaty DCT i Fouriera, kompresja
obrazów. Przykłady zastosowań metod przetwarzania obrazów.
[1] Tadeusiewicz R.: Systemy wizyjne robotów przemysłowych, WNT, Warszawa 1992.
[2] Tadeusiewicz R., Korohoda P.: Komputerowa analiza i przetwarzanie obrazu, Wyd. Fundacji Post˛epu Telekomunikacji,
Kraków 1997.
[3] Tadeusiewicz R., Ogiela M.: Medical Image Understanding Technology, Series: Studies in Fuzziness and Soft Computing, Vol.156, Springer-Verlag, Berlin-Heidelberg-New York, 2004.
Inżynieria oprogramowania
Inżynieria oprogramowania – specyfika podejścia inżynierskiego do procesu wytwarzania oprogramowania. Model CMM
i jego znaczenie. Cykle życie oprogramowania, przeglad.
˛ Technologie strukturalne a obiektowe. Analiza i projektowanie
strukturalne wg. Yourdona, metodyka Warda-Mellora. Podejście obiektowe na przykładzie j˛ezyka UML, znaczenie j˛ezyka,
koncepcja MDA. Podstawowe diagramy j˛ezyka UML: diagramy przypadków użycia, struktura statyczna, modelowanie dynamiki, diagramy implementacji. Inne zagadnienia inżynierii oprogramowania: szacowanie oprogramowania, analiza i zarzadzanie
˛
ryzykiem, studium wykonalności.
[1] Górski J.(red.): Inżynieria oprogramowania w projekcie informatycznym. Wydawnictwo MIKOM 2002
[2] Jaszkiewicz A.: Inżynieria oprogramowania. Wydawnictwo Helion 1997.
[3] Martin J., Odell J. J.: Podstawy metod obiektowych. WNT, Warszawa 1997.
[4] Yourdon E.: Współczesna Analiza Strukturalna. WNT, Warszawa 1996.
[5] Booch G., Rumbaugh J., Jacobson I.: UML przewodnik użytkownika. WNT, Warszawa 2001.
[6] Booch G., Rumbaugh J., Jacobson I.: The Unified Modeling Language Reference Manual, Addison-Wesley 1999.
[7] Booch G., Rumbaugh J., Jacobson I.: The Unified Software Development Process. Addison-Wesley 1999.
[8] Flower M. Scott K.: UML w kropelce. Oficyna Wydawnicza LTP, Warszawa 2002.
4
Programowanie współbieżne i rozproszone
J˛ezyki Ada i Erlang: składnia, komunikacja, typy danych, wyjatki,
˛ elementy obiektowości, podstawowe funkcje obsługujace
˛
typy danych. Algorytmy w systemach rozproszonych (sekcja krytyczna, elekcja, map-reduce).
[1] Cesarini F., Thompson S.: Erlang Programming, O’Reilly, 2009.
[2] Huzar Z.: Ada 95, Helion, Gliwice 1998.
[3] Milner R.: Communication and concurrency, Prentice Hall, 1989.
Systemy operacyjne
Rola i zadania systemu operacyjnego, klasyfikacja systemów operacyjnych, ogólna zasada działania systemu operacyjnego
(sposób przekazywania sterowania do programu jadra),
˛
koncepcja procesu, zasobu i watku.
˛
Obsługa procesów – tworzenie procesów, uruchamianie programów (fork, exec, exit, wait), Obsługi watków
˛
– tworzenie i synchronizacja watków.
˛
Planowanie przydziału procesora, ogólna koncepcja planowania. Algorytmy planowania z wywłaszczaniem i bez wywłaszczeń oraz kryteria ich oceny. Zagadnienia zarzadzania
˛
pami˛ecia.˛ Podział pami˛eci, przydział pami˛eci oraz transformacja
adresów. Zjawisko fragmentacji wewn˛etrznej i zewn˛etrznej, problem ochrony oraz współdzielenia pami˛eci. Tworzeniu obrazu procesu w pami˛eci. Realizacja pami˛eci wirtualnej. Bład
˛ strony, jego obsługa i podstawowe problemy z tym zwiazane.
˛
Zarzadzanie
˛
systemem plików. Uj˛ecia systemu plików od strony logicznej: poj˛ecie pliku, poj˛ecie struktury i typu pliku,
organizacja logiczna systemu plików (strefy, katalogi), metody dost˛epu do pliku oraz interfejs operacji plikowych. Fizyczna
organizacja systemu plików: przydział bloków dyskowych, zarzadzanie
˛
wolna˛ przestrzenia˛ oraz implementacj˛e katalogu.
Omówienie wybranych systemów plików FAT32, NTFS, Linux. Zagadnienia przetwarzania współbieżnego i synchronizacji
procesów. Poj˛ecie instrukcji atomowej oraz przeplotu, istota synchronizacji oraz poprawność programów współbieżnych.
Mechanizmy synchronizacji wspierane przez system operacyjny lub j˛ezyk programowania wysokiego poziomu: semafory
– ich klasyfikacja i implementacja oraz rygle i zmienne współdzielone . Mechanizm komunikacji IPC (mi˛edzyprocesowej):
kolejki komunikatów, pami˛eć współdzielona, sygnały, komunikacja strumieniowa za pośrednictwem łaczy
˛
– tworzenie potoków i zasady ich użycia w komunikacji mi˛edzy procesami (pipe) Zakleszczenie: istota zjawiska, metody przeciwdziałania.
Warunki konieczne zakleszczenia w kontekście zasobów odzyskiwalnych i nieodzyskiwalnych, definicja zakleszczenia, opis
stanu systemu na potrzeby analizy zakleszczenia – graf przydziału i graf oczekiwania oraz ich specyficzne własności. Przeciwdziałanie: zapobieganie zakleszczeniom, unikanie zakleszczeń (w tym algorytm bankiera), detekcja stanu zakleszczenia
i zasady usuwania.
[1] Silberschatz A., Peterson J.L., Gagne G.: Podstawy systemów operacyjnych. WNT, Warszawa 2005.
[2] Stallings W.: Systemy operacyjne. Robomatic, Wrocław 2004.
[3] Stevens W.R.: Programowania w środowisku systemu UNIX. WNT, Warszawa 2002.
[4] Rochkind M.J.: Programowanie w systemie Unix dla zaawansowanych. WNT, Warszawa 1993.
[5] Guźlewski Z., Weiss T.: Programowanie współbieżne i rozproszone w przykładach i zadaniach. WNT, Warszawa 1993.
Bazy danych
Relacyjny model danych. Algebra relacji. Zależności funkcyjne i postacie normalne. Normalizacja. System zarzadzania
˛
baza˛
danych PostgreSQL. Instrukcja select: kryteria wyszukiwania, wyrażenia regularne, złaczenia
˛
tabel, agregacja i grupowanie
danych, łaczenie
˛
zapytań, podzapytania skorelowane i nieskorelowane. Tworzenie tabel. Typy danych. Zwiazki
˛
mi˛edzy
tabelami. Sekwencje, widoki, domeny, ograniczenia. Instrukcje DML: insert, update, delete. Administracja baza˛ danych:
grant, revoke. Wyzwalacze, funkcje, reguły. Podstawy przetwarzania transakcyjnego.
[1] Stones R., Matthew N.: Bazy danych i PostgreSQL, Wydawnictwo Helion, Gliwice, 2001.
[2] Ullman J.D., Widom J.: Podstawowy wykład z baz danych, WNT, Warszawa, 2000.
[3] http://www.postgresql.org – strona zawiera mi˛edzy innymi dokumentacj˛e w formacie pdf i html.
J˛ezyki formalne i kompilatory
J˛ezyk a metaj˛ezyk, podział j˛ezyków, budowa j˛ezyka. Gramatyka generacyjna, klasyfikacja Chomsky’ego. Metody rozbioru
gramatycznego. Automat deterministyczny i niedeterministyczny, optymalizacja automatu. Wyrażenia regularne. Translator,
5
kompilator, interpreter, budowa i zasady działania. Analiza leksykalna i składniowa, generowanie kodu wynikowego, wydobywanie si˛e z bł˛edów. Gramatyki i analizatory LL(k), zasady działania i własności. Inne sposoby parsingu. Generatory
parserów.
[1] Gries D.: Konstrukcja translatorów dla maszyn cyfrowych, WNT, Warszawa 1984.
[2] Aho A.V, Sethi R., Ullman J.D.: Kompilatory: reguły, metody i narz˛edzia, WNT, Warszawa 2002.
[3] Hopcroft J., Ullman J.: Wprowadzenie do teorii automatów, j˛ezyków i obliczeń, PWN, Warszawa 1994.
Metody optymalizacji
Operacje jednorodne, liniowe, ograniczone. Funkcje wkl˛esłe i wypukłe. Ekstrema lokalne i globalne z ograniczeniami lub
bez dla funkcji wielu zmiennych. Warunki istnienia rozwiazania
˛
optymalnego w zagadnieniach z ograniczeniami lub bez
ograniczeń. Warunki stopu stosowane w iteracyjnych metodach poszukiwania minimum. Zbieżność iteracyjnych metod poszukiwania minimum. Metody zewn˛etrznej i wewn˛etrznej funkcji kary dla ograniczeń równościowych i nierównościowych.
Przypadek zbioru dopuszczalnego o pustym wn˛etrzu. Metody Powella poszukiwania minimum bez ograniczeń. Kierunki
sprz˛eżone wzgl˛edem macierzy. Degeneracja bazy kierunków poszukiwań. Algorytmy genetyczne i wykorzystywane w nich
operacje. Zadania optymalizacji wielokryterialnej. Metoda skalaryzacji. Programowanie liniowe. Postać kanoniczna zadania
programowania liniowego. Zrewidowana metoda symplex. Metoda dwu faz. Graficzna poszukiwanie rozwiazania.
˛
[1] Korytowski A., Ziółko M.: Metody optymalizacji z ćwiczeniami laboratoryjnymi, Wydawnictwo AGH, Kraków 1992.
[2] Findeisen W., Szymanowski J., Wierzbicki A.: Teoria i metody obliczeniowe optymalizacji, PWN, Warszawa 1977.
[3] Stachurski A., Wierzbicki A.P.: Podstawy optymalizacji, Oficyna Wydawnicza PW, Warszawa 2001.
[4] Brdyś M., Ruszczyński A.: Metody optymalizacji w zadaniach, WNT, Warszawa 1985.
SOA w projektowaniu i implementacji oprogramowania
Poj˛ecie usługi i architektury zorientowanej na usługi, cechy usług, podział usług, orkiestracja i choregorafia usług. Usługi
SOAP i REST, WSDL, SOAP, UDDI. Podstawowe wzorce projektowe SOA, pojeci˛e szyny danych (ESB) oraz integracja
systemów w oparciu o ESB. Architektura Java EE, komponenty EJB: rodzaje i cechy, asynchroniczny wzorzec komunikacji,
Java Messaging Service, Java Persistence API.
[1] Erl T.: SOA Principles of Service Design, Prentice Hall Service-Oriented Computing Series, 2007
[2] Erl T.: SOA Design Patterns, Prentice Hall Service-Oriented Computing Series, 2008
[3] Jendrock E., Evans I., Gollapudi D., Haase K., Srivathsa C.: The Java EE 6 Tutorial: v. 1: Basic Concepts (Java Series),
Addison-Wesley, 2010
[4] Jendrock E., Evans I., Gollapudi D., Haase K., Srivathsa C.: The Java EE 6 Tutorial: v. 2: Advanced Topics, AddisonWesley, 2010
Zarzadzanie
˛
projektami
Metodologie prowadzenia projektu, metodologie lekkie, tradycyjne, best practices. Zespoły projektowe, role w zespole,
zarzadzanie
˛
zespołem, kontrola prac i stanu projektu. Komunikacja w projekcie, interesariusze (stakeholders), outsourcing.
Zarzadzanie
˛
ryzykiem w projekcie. Zarzadzanie
˛
jakościa˛ i kontrola jakości.
[1] Berkun S.: Sztuka zarzadzania
˛
projektami, Helion, Gliwice 2006.
[2] Gibbs D.: Project Management with the IBM Rational Unified Process, IBM Press 2007.
[3] Yourdon E.: Marsz ku kl˛esce, WNT, Warszawa 2007.
Przewodniczacy
˛ Komisji ds. Egzaminu Kierunkowego
dr hab. Andrzej Bielecki, prof. n.
6

Podobne dokumenty