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