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ęzyki i metody programowania Typy stałych i zmiennych. Instrukcje sterujące. Tablice. Funkcje. Wskaźniki. Struktury i unie. Operacje na bitach. Definiowanie typów. Operatory. Preprocesor. Klasy pamięci. Dynamiczna alokacja pamięci. Biblioteka standardowa. Referencje w języku C++, elementy składowe klas. Kompozycja i dziedziczenie, dziedziczenie wielobazowe, polimorfizm. Konstruktory i destruktory. Przeciążanie funkcji i operatorów. Kopiowanie obiektów klas alokujących pamięć. Operatory rzutowania w C++. Mechanizmy RTTI. Wyjątki. 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++. [1] Kernighan B., Ritchie D.: Język C, WNT, Warszawa 2004. [2] Stroustrup B.: Język C++, WNT, Warszawa 2002. [3] Eckel B.: Thinking in C++, Helion, Gliwice 2004. [4] Grębosz J.: Symfonia C++, Oficyna Kallimach, Kraków 2004. [5] Grębosz 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ętrznego oraz szybkie algorytmy sortowania. Sortowanie zewnętrzne. 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, przegląd algorytmów grafowych. Wyszukiwanie wzorców tekstowych. [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ęp do systemu UNIX Uwierzytelnianie użytkowników w systemie typu Unix. Mechanizmy konfiguracji powłoki Uniksowej. Uniksowe prawa dostępu. Komunikacja międzyprocesowa w systemie Unix. Zarządzanie systemem plików w Uniksie. Sekwencja startowa systemu typu Unix. Podsystem procesów w systemie Unix. Podstawowe algorytmy szyfrujące. Architektura systemu Unix. Podstawowe elementy budowy jądra Unix. Zarządzanie plikami w Uniksie. System monitorowania i rejestrowania zdarzeń w Uniksie. Podstawy tworzenia skryptów Sh. [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ęcznik użytkownika, O Reilly/RM, 1999. 1
Programowanie obiektowe Paradygmat programowania obiektowego w języku Java. Platforma Java. Maszyna wirtualna. Obiekty i referencje. Przydział pamięci i mechanizm automatycznego usuwania niepotrzebnych obiektów. Składnia języka. Tablice. Klasy i ich składowe: pola, metody, metody statyczne. Polimorfizm w języku Java. Konstruktory, klonowanie obiektów. Interfejsy i klasy abstrakcyjne. Zastosowania klas wewnętrznych i klas zagnieżdżonych. Stosowanie wyjątków. Wątki, synchronizacja i wzajemne wykluczanie, monitory. Podstawowe kontenery w języku Java. Biblioteka AWT, hierarchie komponentów. Zarządzanie układem komponentów. Obsługa zdarzeń operacje graficzne. Animacja. Biblioteka Swing: elementy składowe. [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ętla PLL. Uruchamianie i testowanie układów cyfrowych standard JTAG. Programowalne układy logiczne. Język opisu sprzętu VHDL. Podstawy cyfrowego przetwarzania sygnałów. Konwersja analogowocyfrowa i cyfrowo-analogowa. Mikrokontroler 8051. Tryby pracy procesora 486. [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ęzyk 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ęci i adresowanie. Pojęcie przerwania. Język asembler. Analiza i pomiar wydajności komputera. [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 zwierząt. Sprzęt komputerowy niezbędny dla realizacji zaawansowanej grafiki komputerowej (zaawansowane urządzenia 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. Przegląd i analiza porównawcza profesjonalnych systemów do tworzenie grafiki komputerowej. Najważniejsze konferencje i ośrodki zajmujące się grafiką komputerowa w Polsce i na Świecie. [1] Hearn D., Baker M. P.: Computer Graphics with OpenGL. 3/e, Pearson/Prentice Hall, 2004. Metody numeryczne Podstawowe pojęcia i informacje dotyczące obliczeń numerycznych. Źródła błędó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łąd interpolacji, efekt Runge go, interpolacja Hermite a, i oszacowanie jej błędu. Interpolacja funkcjami sklejanymi wraz z oszacowaniem błędu. Aproksymacja: aproksymacja średniokwadratowa, aproksymacja jednostajna. Całkowanie numeryczne: pojęcie kwadratury liniowej, kwadratury interpolacyjne (Lagrange a i Hermite a), kwadratury Newtona - Cotesa, rząd kwadratury, błędy, zbieżność ciągu kwadratur, przyspieszenie zbieżności. Metody ekstrapolacyjne metoda Romberga, procedury automatycznego całkowania. Rozwiązywanie 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. Rozwiązywanie 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 początkowe 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ęwzięć. Metoda ścieżki krytycznej. Problemy szeregowania zadań, ich klasyfikacja i wybrane algorytmy. Heurystyczne metody rozwiązania problemów. Algorytmy przeszukiwania sąsiedztwa. Algorytmy ewolucyjne. Teoria gier i decyzji. Symulowane wyżarzanie. Podstawowe pojęcia związane ze złożonością obliczeniową. Klasy złożoności problemów decyzyjnych. Modele obliczeń. Techniki dowodzenia NP-zupełności i NP-trudności problemów. [1] Jarosław Arabas: Wykłady z algorytmów ewolucyjnych. WNT Warszawa 2004. [2] Tadeusz Sawik: Badania operacyjne dla inżynierów zarządzania. 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ępu 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). Urządzenia i protokoły do współpracy międzysieciowej: 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. Przeglądarki WWW: współpraca przeglądarki z serwerem; wyszukiwarki i wyszukiwanie informacji. Projektowanie stron WWW: koncepcja, struktura logiczna, tekst, grafika, tło, kolory. Język XHTML: znaczniki i polecenia.; formatowanie tekstu; grafika; odnośniki; tworzenie map odnośników; tabele; przyciski i formularze. Arkusze stylów, język CSS. Programowanie aplikacji internetowych: programowanie po stronie klienta (język JavaScript); programowanie po stronie serwera (język PHP); walidacja formularzy; przetwarzanie danych z formularzy. Metajęzyki SGML, XML, i ich zastosowania: różnice pomiędzy 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ęku 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 narządu wzroku człowieka; elementy sztucznego systemu wizyjnego. Pozyskiwanie obrazów cyfrowych urządzenia; próbkowanie; kwantyzacja. Podstawowe metody przetwarzania obrazów cyfrowych: poprawa jakości obrazu; operacje arytmetyczne; filtracja i usuwanie zakłóceń; detekcja krawędzi. 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ęstotliwoś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ępu 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, przegląd. Technologie strukturalne a obiektowe. Analiza i projektowanie strukturalne wg. Yourdona, metodyka Warda-Mellora. Podejście obiektowe na przykładzie języka UML, znaczenie języka, koncepcja MDA. Podstawowe diagramy języka UML: diagramy przypadków użycia, struktura statyczna, modelowanie dynamiki, diagramy implementacji. Inne zagadnienia inżynierii oprogramowania: szacowanie oprogramowania, analiza i zarządzanie 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ęzyki Ada i Erlang: składnia, komunikacja, typy danych, wyjątki, elementy obiektowości, podstawowe funkcje obsługujące 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 jądra), koncepcja procesu, zasobu i wątku. Obsługa procesów tworzenie procesów, uruchamianie programów (fork, exec, exit, wait), Obsługi wątków tworzenie i synchronizacja wątków. Planowanie przydziału procesora, ogólna koncepcja planowania. Algorytmy planowania z wywłaszczaniem i bez wywłaszczeń oraz kryteria ich oceny. Zagadnienia zarządzania pamięcią. Podział pamięci, przydział pamięci oraz transformacja adresów. Zjawisko fragmentacji wewnętrznej i zewnętrznej, problem ochrony oraz współdzielenia pamięci. Tworzeniu obrazu procesu w pamięci. Realizacja pamięci wirtualnej. Błąd strony, jego obsługa i podstawowe problemy z tym związane. Zarządzanie systemem plików. Ujęcia systemu plików od strony logicznej: pojęcie pliku, pojęcie struktury i typu pliku, organizacja logiczna systemu plików (strefy, katalogi), metody dostępu do pliku oraz interfejs operacji plikowych. Fizyczna organizacja systemu plików: przydział bloków dyskowych, zarządzanie wolną przestrzenią oraz implementację katalogu. Omówienie wybranych systemów plików FAT32, NTFS, Linux. Zagadnienia przetwarzania współbieżnego i synchronizacji procesów. Pojęcie instrukcji atomowej oraz przeplotu, istota synchronizacji oraz poprawność programów współbieżnych. Mechanizmy synchronizacji wspierane przez system operacyjny lub język programowania wysokiego poziomu: semafory ich klasyfikacja i implementacja oraz rygle i zmienne współdzielone. Mechanizm komunikacji IPC (międzyprocesowej): kolejki komunikatów, pamięć współdzielona, sygnały, komunikacja strumieniowa za pośrednictwem łączy tworzenie potoków i zasady ich użycia w komunikacji między 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 zarządzania bazą danych PostgreSQL. Instrukcja select: kryteria wyszukiwania, wyrażenia regularne, złączenia tabel, agregacja i grupowanie danych, łączenie zapytań, podzapytania skorelowane i nieskorelowane. Tworzenie tabel. Typy danych. Związki między tabelami. Sekwencje, widoki, domeny, ograniczenia. Instrukcje DML: insert, update, delete. Administracja bazą 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ędzy innymi dokumentację w formacie pdf i html. Języki formalne i kompilatory Język a metajęzyk, podział języków, budowa języka. 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ę z błędó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ędzia, WNT, Warszawa 2002. [3] Hopcroft J., Ullman J.: Wprowadzenie do teorii automatów, języków i obliczeń, PWN, Warszawa 1994. Metody optymalizacji Operacje jednorodne, liniowe, ograniczone. Funkcje wklęsłe i wypukłe. Ekstrema lokalne i globalne z ograniczeniami lub bez dla funkcji wielu zmiennych. Warunki istnienia rozwiązania optymalnego w zagadnieniach z ograniczeniami lub bez ograniczeń. Warunki stopu stosowane w iteracyjnych metodach poszukiwania minimum. Zbieżność iteracyjnych metod poszukiwania minimum. Metody zewnętrznej i wewnętrznej funkcji kary dla ograniczeń równościowych i nierównościowych. Przypadek zbioru dopuszczalnego o pustym wnętrzu. Metody Powella poszukiwania minimum bez ograniczeń. Kierunki sprzężone względem 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 rozwiązania. [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ęcie 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ę 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, Addison- Wesley, 2010 Zarzadzanie projektami Metodologie prowadzenia projektu, metodologie lekkie, tradycyjne, best practices. Zespoły projektowe, role w zespole, zarządzanie zespołem, kontrola prac i stanu projektu. Komunikacja w projekcie, interesariusze (stakeholders), outsourcing. Zarządzanie ryzykiem w projekcie. Zarządzanie jakością i kontrola jakości. [1] Berkun S.: Sztuka zarządzania projektami, Helion, Gliwice 2006. [2] Gibbs D.: Project Management with the IBM Rational Unified Process, IBM Press 2007. [3] Yourdon E.: Marsz ku klęsce, WNT, Warszawa 2007. Przewodniczący Komisji ds. Egzaminu Kierunkowego dr hab. Andrzej Bielecki, prof. n. 6