Wydział Matematyki, Informatyki i Mechaniki
Magisterskie Studia Uzupełniające
na kierunku informatyka
Program zajęć - ROK II
Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: M. Grabowski
Sylabus:
- Ogólna informacja o metodzie denotacyjnej, dziedziny syntaktyczne i semantyczne, równania semantyczne.
- Informacja o równaniach dziedzinowych; iteracja, rekursja jako punkty stałe.
- Pojęcia pamięci, stanu, środowiska. Wartości oznaczane, pamiętane i wyrażalne. Formalna semantyka procedur jako przykład.
- Semantyka statyczna i dynamiczna procedur oraz konstrukcji "let".
- Kontynuacje instrukcji i przykłady struktur sterowania (różne powroty z procedur).
- Formalna semantyka wyjątków.
- Elementarne informacje o języku SML i przykład zaimplementowania w SML formalnej semantyki denotacyjnej prostego języka.
- Metodologia stukturalnej semantyki operacyjnej. Semantyka operacyjna przykładowego języka funkcyjnego.
- Typowanie jako część syntaktyki języka. Typy proste i pojęcie typu głównego.
- Płaskie typy polimorficzne i algorytm Milnera.
- Gordon, "Denotacyjny opis jezyków programowania".
- Plotkin, "A structural approach to operational semantics".
Rodzaj: wykład (20), egzamin, V trymestr
Autorzy programu: M. Engel
Sylabus:
- Wstęp. Przegląd różnych metod specyfikacji programów: metody algebraiczne, transformacyjne, teorio-mnogościowe, logiki programów (przypomnienie z MAT-I i rozszerzenie).
- Metody algebraiczne. Algebry uniwersalne. Homomorfizm algebr. Kongruencje. Algebra ilorazowa. Algebra termów. Algebra początkowa.
- Specyfikacje równościowe. Semantyka. Wyrażalność.
- Mechanizmy strukturalne. Operacje na specyfikacjach. Parametryzacja modułów.
- Prezentacja wybranego języka specyfikacji algebraicznej, przykłady specyfikacji struktur danych.
- Konstruowanie programów metodą kolejnych uściśleń. Rachunek Dijkstry najmocniejszych warunków wstępnych dla programów iteracyjnych.
- Specyfikacje programów współbieżnych. Logiki temporalne. Dowodzenie własności żywotności i zapewniania.
- Metody specyfikacji programów rozproszonych i systemów czasu rzeczywistego. Przykłady specyfikacji protokołów komunikacyjnych.
- Walidacja specyfikacji. Techniki sprawdzania "trafności" specyfikacji. Animacja, prototypowanie,
- Narzędzia wspomagające proces specyfikowania i weryfikacji oprogramowania.
- C.B. Jones, "Konstruowanie oprogramowania metodą systematyczną", WNT, 1983.
- A. Pnueli, Z. Manna, "The Temporal Logic for Reactive and Concurrent Systems. Specification", Springer-Verlag, 1991.
- E. Dijkstra, "Umiejętność programowania", WNT, 1978.
Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: K. Diks, B. Chlebus
Sylabus:
- Algorytmy randomizowane:
- algorytmy Las Vegas i Monte Carlo,
- probabilistyczne struktury danych: listy z przeskakiwaniem, treaps,
- problem minimalnego przekroju w grafie.
- aproksymowanie ze stałą,
- schematy aproksymacyjne,
- problemy bez efektywnych algorytmów aproksymujących.
- implementacja algorytmu Kruskala,
- algorytm Dijkstry dla najkrótszych ścieżek,
- algorytmy znajdujące maksymalne przepływy w sieciach,
- skojarzenia w grafach dwudzielnych, algorytm Hopcrofta-Karpa.
- analiza kompetytywności,
- stronicowanie, serwery, metryczne systemy zadań.
- wyszukiwanie pomimo kłamstw (problem Ulama),
- problem bizantyjskich generałów.
- R.K. Ahuja, T.L. Magnanti, J.B. Orlin, "Network Flows", Prentice Hall, 1993.
- M. Garey, D.S. Johnson, "Computers and Intractability: A Guide to the Theory of NP-Completeness", W.H. Freeman, 1979.
- D.S. Hochbaum (Ed.), "Approximation Algorithms for NP-Hard Problems", PWS, 1995.
- R. Motwani, P. Raghavan, "Randomized Algorithms", Cambridge University Press, 1995.
Rodzaj: wykład (20), egzamin, V trymestr
Autorzy programu: K. Diks, B. Chlebus
Sylabus:
- Obwody logiczne:
- obliczanie ciągu prefiksów operacji łącznej,
- obwody dodające,
- obwody mnożące.
- sieci sortujące Batchera,
- sieci periodyczne.
- tablica procesorów, sieć motylkowa, hiperkostka,
- sortowanie i trasowanie.
- sumy prefiksowe, podwajanie,
- klasa NC, P-zupełność,
- probabilistyczny algorytm obliczania maksymalnego zbioru niezależnego, derandomizacja.
- wybór lidera: pierścień (algorytmy Hirshberga-Sinclaira i Petersona), dolna granica dla algorytmów porównujących,
- minimalne drzewa rozpinające: algorytm GHS.
- wybór lidera na pierścieniu (algorytmy Hirschberga i Petersona),
- wybór lidera w dowolnym grafie,
- problemy ścieżkowe (BFS, najkrótsze ścieżki),
- minimalne drzewa rozpinające (algorytm Gallagera, Humbleta i Spiry).
- T.H. Cormen, C.E. Leiserson, R.L. Rivest, "Wprowadzenie do algorytmów", WNT, Warszawa, 1997.
- J. JaJa, "An Introduction to Parallel Algorithms", Addison-Wesley, 1992.
- F.T Leighton, "Parallel algorithms and architectures", Morgan-Kaufman, 1992.
- N.A. Lynch, "Distributed algorithms", Morgan-Kaufmann, 1996.
Rodzaj: wykład (20), egzamin, V trymestr
Autorzy programu: W. M. Turski
Sylabus:
- Różnice między przemysłowym tworzeniem produktów programistycznych a programowaniem w małej skali, specyfika tworzenia dużych systemów informatycznych.
- Cykl życia i modele ewolucji oprogramowania. Rozkład nakładów na oprogramowanie w cyklu jego życia.
- Wydajność pracy programistów. Zależność od wyposażenia w narzędzia ułatwiające prace programistyczne. Miary produktywności: liczba wierszy kodu i liczba punktów funkcyjnych.
- Organizacja, standaryzacja i formalizacja procesu projektowania, dokumentowania, wytwarzania i pielęgnacji oprogramowania.
- Organizacja zespołów programistycznych, podział ról i zadań, bieżące zarządzanie pracami programistycznymi.
- Problematyka kontroli jakości oprogramowania, standardy i normy (ISO, IEEE).
- Organizacja inspekcji wewnętrznej i zewnętrznej. Klasyfikacja poziomu jakości firm programistycznych wg SEI.
- Organizacja nadzoru nad wersjami i konfiguracjami oprogramowania.
- Prawne aspekty wytwarzania oprogramowania, sposoby konstruowania umów z klientami, aspekty prawa autorskiego w odniesieniu do oprogramowania, ochrona praw osobistych (ustawa).
- Organizacja uslug serwisowych i gwarancyjnych, proces zbierania informacji o błędach, metodyczne podejście do reakcji na wykryte błędy.
- W. S. Humphrey, "Managing the Software Process", Addison-Wesley, 1989.
- J. Barta i R. Markiewicz, "Główne problemy prawa komputerowego", WNT, 1993.
Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: Z. Jurkiewicz, M. Benke
Sylabus:
Podstawy zarządzania projektami informatycznymi. Planowanie. Sieci PERT, ścieżka krytyczna. Diagramy Gantta, wykorzystanie zasobów. Rachunek kosztów. Szacowanie ryzyka. Szacowanie pracochłonności. Microsoft Project.
Rodzaj: wykład (20) z ćwiczeniami lub laboratorium (20), egzamin,
V trymestr
Autorzy programu: M. Benke , A. Szałas
Sylabus:
- Pojęcie systemu informacyjnego i informatycznego, specyfika działania dużych przedsiębiorstw i podstawowe problemy informatyczne w nich występujące.
- Klasyfikacja informatycznych systemów zarządzania.
- Podstawowe obszary działania przedsiębiorstwa i odpowiadające im elementy (moduły) oprogramowania, pojęcie systemu zintegrowanego, księgowość, dystrybucja, gospodarka magazynowa.
- Komputerowe wspomaganie modelowania struktury przedsiębiostwa i zachodzących w nim procesów (np. ARIS lub narzędzia SAP).
- Zasady tworzenia systemów informowania kierownictwa.
- Przegląd najważniejszych zintegrowanych systemów zarządzania wdrażanych w dużych przedsiębiorstwach (SAP, IFS, BAAN, itp.).
- Wprowadzenie do zasad wdrażania i programowania wybranego systemu.
Ćwiczenia będą poświęcone dogłębniejszemu zapoznaniu słuchaczy z wybranym (i dostępnym na wydziale) zintegrowanym systemem zarządzania.
Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S.
Kurpiewski, J. Deminet)
Sylabus:
- Protokoły warstwy fizycznej i łącza:
- protokół Ethernet,
- protokół Ethernet Netware Proprietary,
- protokół 802.3,
- protokół 802.3 SNAP.
- sieci z krążącym znacznikiem,
- przełączany Ethernet.
- adresowanie w intersieci,
- opis ramki IP,
- mechanizmy fragmentacji i defragmentacji pakietów,
- opcje IP.
- typy komunikatów,
- opis ramki ICMP,
- wykorzystanie komunikatów ICMP.
- porty, kolejki, klient i serwer usługi sieciowej,
- opis ramki UDP,
- aplikacje oparte na protokole UDP.
- transmisja z gwarancją dostarczenia danych,
- transmisja z potwierdzaniem,
- kontrola przepływu danych.
- opis ramki TCP,
- operacje i stany TCP.
- opis używanych protokołów sieciowych.
- możliwości współpracy z innymi systemami.
- opis używanych protokołów sieciowych.
- możliwości współpracy z innymi systemami.
- D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
- RFC 1122: "Requirements for Internet hosts - communication layer".
- RFC 1123: "Requirements for Internet hosts - application and support".
- RFC 1700: "Internet number".
- RFC 826: "Address Resolution Protocol".
- RFC 903: "A Reverse Address Resolution Protocol".
- RFC 791,760: "Internet Protocol".
- RFC 792,777: "Internet Control Message Protocol".
- RFC 768: "User Datagram Protocol".
- RFC 793: "Transmission Control Protocol".
Rodzaj: laboratorium (20), zaliczenie na ocenę, IV trymestr
Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S.
Kurpiewski, J. Deminet)
Sylabus:
- Protokoły warstwy łącza:
- obsługa ramek protokołu Ethernet,
- obsługa ramek protokołu Ethernet Netware Proprietary.
- obsługa ramek protokołu 802.3,
- obsługa ramek protokołu 802.3 SNAP.
- obsługa pakietów protokołu ARP.
- obsługa pakietów protokołu IP.
- obsługa pakietów protokołu ICMP.
- obsługa pakietów protokołu UDP.
- obsługa pakietów protokołu TCP.
- obsługa połączeń TCP.
- analiza stosu sieciowego,
- konfigurowanie usług sieciowych.
- konfigurowanie usług sieciowych,
- łącza WAN w systemach Unix/Novell/Microsoft.
Literatura:
- D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
- RFC 1122: "Requirements for Internet hosts - communication layer".
- RFC 1123: "Requirements for Internet hosts - application and support".
- RFC 1700: "Internet number".
- RFC 826: "Address Resolution Protocol".
- RFC 903: "A Reverse Address Resolution Protocol".
- RFC 791,760: "Internet Protocol".
- RFC 792,777: "Internet Control Message Protocol".
- RFC 768: "User Datagram Protocol".
- RFC 793: "Transmission Control Protocol".
Rodzaj: wykład (20), egzamin, V trymestr
Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S.
Kurpiewski, J. Deminet)
Sylabus:
- Łącza szeregowe - omówienie protokołów:
- protokół SLIP,
- protokół PPP,
- protokoły do komunikacji modemowej V.xx.
- SDH/SONET,
- ISDN.
- opis cech protokołu,
- enkapsulacja IP.
- opis cech protokołu,
- enkapsulacja IP,
- LAN emulation,
- sieci wirtualne.
- D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
- RFC 1122: "Requirements for Internet hosts - communication layer".
- RFC 1123: "Requirements for Internet hosts - application and support".
- RFC 1700: "Internet number".
- RFC 826: "Address Resolution Protocol".
- RFC 903: "A Reverse Address Resolution Protocol".
- RFC 791,760: "Internet Protocol".
- RFC 1331: "The Point-to-Point Protocol for the Transmission of Multi-Protocol Datagrams Over Point-to-Point Links".
- RFC 1661: "The Point-to-Point Protocol".
- RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Concepts and methods".
- RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Detailed specification".
- http://www.atmforum.com.
- http://www.frforum.com.
Rodzaj: laboratorium (20), zaliczenie na ocenę, V trymestr
Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S.
Kurpiewski, J. Deminet)
Sylabus:
- Oprogramowanie modemu (protokół Hayesa).
- Łącza szeregowe:
- konfigurowanie łącza SLIP,
- analiza pakietów.
- konfigurowanie łącza PPP,
- analiza przesyłanych pakietów.
- konfigurowanie łącza X.25.
- konfigurowanie łącza ATM,
- analiza ramek ATM.
- konfigurowanie sieci wirtualnych.
- konfigurowanie usługi QoS (Quality of Service).
- enkapsulacja innych protokołów sieciowych.
- D.E Commer: tom 1: "Sieci komputerowe TCP/IP. Zasady, protokoły, architektura", WNT 1997.
- RFC 1122: "Requirements for Internet hosts - communication layer".
- RFC 1123: "Requirements for Internet hosts - application and support".
- RFC 1700: "Internet number".
- RFC 826: "Address Resolution Protocol".
- RFC 903: "A Reverse Address Resolution Protocol".
- RFC 791,760: "Internet Protocol".
- RFC 1331: "The Point-to-Point Protocol for the Transmission of Multi-Protocol Datagrams Over Point-to-Point Links".
- RFC 1661: "The Point-to-Point Protocol".
- RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Concepts and methods".
- RFC 1001: "Protocol Standard for a NetBIOS service on a TCP/UDP Transport: Detailed specification".
- http://www.atmforum.com.
Rodzaj: wykład (20), egzamin, VI trymestr
Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer (S.
Kurpiewski)
Sylabus:
- Wstęp do systemów rozproszonych:
- co to jest system rozproszony,
- cele, wady, zalety,
- przegląd architektur, wieloprocesor a wielokomputer,
- system sieciowy a system rozproszony,
- kwestie projektowe: przezroczystość, elastyczność, niezawodność, wydajność, skalowalność,
- komunikacja w systemach rozproszonych (komunikaty, model klient-serwer, protokoły, komunikacja grupowa, rozgłaszanie),
- typowe zagadnienia systemów rozproszonych.
- synchronizacja zegarów logicznych,
- synchronizacja zegarów fizycznych,
- algorytmy wzajemnego wykluczania i elekcji,
- transakcje atomowe (własności, implementacja, kontrola współbieżności),
- zastój w systemach rozproszonych (wykrywanie, zapobieganie).
- procesy i wątki,
- modele przetwarzania w systemach z wieloma procesorami (stacje robocze, pula procesorów, podział obciążenia a równoważenie obciążenia),
- migracja procesów (statyczna, dynamiczna),
- algorytmy przydziału procesora,
- odporność na błędy,
- systemy rozproszone czasu rzeczywistego.
- nazewnictwo i przezroczystość,
- współdzielenie plików,
- zdalny dostęp do plików, pamięć podręczna, tworzenie kopii,
- serwer plików: stanowy, bezstanowy.
- NFS,
- Andrew File System,
- Coda.
- modele zgodności pamięci,
- pamięć dzielona w systemach wieloprocesorowych:
- wieloprocesor z pojedynczą szyną (np. podsłuchująca pamięć podręczna),
- wieloprocesor w pierścieniu (np. Memnet),
- wieloprocesor z wieloma połączeniami (np. Dash),
- wieloprocesor typu NUMA, UMA.
- pamięć dzielona w systemach wielokomputerowych (typu NORMA):
- DSM ze stronami,
- DSM ze wspólnymi zmiennymi (np. Munin, Midway),
- DSM z obiektami (np. Linda, Orca).
- A. Tanenbaum, "Rozproszone systemy operacyjne", PWN, 1997.
- G. Coulouris, J. Dollimore, T. Kindberg, , "Distributed Systems: Concepts and Design", Addison-Wesley, 1994. (Ukaże się nakładem WNT).
- R. Chow, T. Johnson, "Distributed Operating Systems & Algorithms", Addison-Wesley, 1997.
- K. Sacha, "QNX", X-system, Warszawa 1995.
- W. Lerch, "System operacyjny QNX", Quantum Corp., 1994.
- QNX Software Systems, "QNX Operating System. System Architecture", 1997.
Rodzaj: wykład (20), egzamin, VI trymestr
Autorzy programu: T. Fornalik, G. Grudziński, J. Mincer, R.
Maron (S. Kurpiewski, J. Deminet)
Sylabus:
- Protokoły SNMP v2 i v3, zastosowanie do monitorowania i konfiguracji sieci, istniejące narzędzia w środowisku systemu Linux; protokół DHCP --- konfiguracja serwera i klientow.
- Wykorzystanie szyfrowania z kluczem publicznym do bezpiecznej komunikacji z serwerem za pomocą poczty elektronicznej (wysyłanie poleceń w listach) --- konfiguracja przykładowego serwera (uwaga na różne metody ataków!).
- Podpisy cyfrowe w poczcie elektronicznej, zastosowanie do przyjmowania listów tylko od osob, których tożsamość można potwierdzić (baza kluczy publicznych, PGP5 i publiczne serwery kluczy).
- Konfiguracja bezpieczeństwa kont w systemie Unix z wykorzystaniem biblioteki PAM (pluggable authentication modules):
- zwykłe konta,
- mechanizm shadow,
- wymuszanie długości haseł,
- cracklib (pasywna ochrona),
- konfiguracja ograniczeń wykorzystania zasobów.
- NIS,
- NIS+,
- słabości, metody włamań.
- SSL (Secure Socket Layer) - konfiguracja, serwery, interfejsy klienckie,
- tunelowanie protokołów przez SSH (secure shell) - techniki tunelowania protokołów POP, NNRP, informacja o niemożliwości tunelowania FTP.
- system Linux jako serwer proxy HTTP,
- bezpieczeństwo i oprogramowanie SOCKS (konfiguracja serwera i klientów).
- konfiguracja wybranego pakietu filtrującej ściany ogniowej,
- filtry pakietów w jądrze systemu Linux i ich konfiguracja.
- B. Schneier, "Bezpieczeństwo poczty elektronicznej", WNT 199?.
- W. Stallings, "Ochrona danych w sieci i intersieci", WNT 1997.
Rodzaj: wykład (20), egzamin, IV trymestr
Autorzy programu: Z. Jurkiewicz
Sylabus:
- Przegląd faz budowy systemu. Rola metodologii. Podejście strukturalne i obiektowe. Prototypy. Narzędzia wspomagające (CASE). Problem przestarzałych systemów. Reverse engineering i jego wspomaganie.
- Wprowadzenie do analizy, podstawowe zasady. Organizacja na przykładzie SSADM 4. Faza rozpoznania (studium wykonalności). Katalog wymagań. Kategorie użytkowników (role). Hierarchia funkcji. Zdarzenia.
- Przegląd zagadnień analizy strukturalnej, budowa kompletnej specyfikacji. Aspekty modelowania: funkcje, dane i sterowanie. Słowniki danych, repozytoria.
- Diagramy przepływu danych, dekompozycja funkcji i ich opisy. Warunki poprawności. Diagramy związków encji, macierz funkcje/encje. Uogólnione sieci przejść (diagramy Harela).
- Podejście obiektowe (UML). Klasy i dziedziczenie. Rodzaje zwiazków. Scenariusze (use cases).
- Budowa specyfikacji. Model środowiskowy (kontekstowy) systemu i model zachowania. Ograniczenia implementacyjne narzucone przez użytkownika.
- Projektowanie. Globalna architektura systemu, kategorie. Dekompozycja na podsystemy. Diagramy struktury modulow. Schematy dialogów. Wzorce projektowe. Projektowanie baz danych. Konwencje nazywania.
- Implementacja. Budowa i testowanie programow, generatory aplikacji. Lokalizacja. Narzędzia do pielegnacji kodow żródłowych i wynikowych. Testowanie regresyjne. Testowanie obciążalności.
- Narzędzia do automatyzacji testowania. Optymalizacja. Testy akceptacyjne, badanie zgodności ze specyfikacją.
- Wdrożenie systemu. Plan przejścia. Dokumentacja użytkowa i systemowa. Konwersja danych. Szkolenie użytkowników. Pielęgnacja systemu.
- Rezerwa.
- E. Yourdon, "Współczesna analiza strukturalna", WNT, Warszawa 1996.
- J. Rumbaugh et al., "Object-Oriented Modeling and Design", Prentice Hall, Englewood Cliffs, 1991.
Rodzaj: wykład (20), egzamin, V trymestr
Autorzy programu: Z. Jurkiewicz
Sylabus:
- Zdalny dostęp do baz danych. Dostęp do heterogenicznych baz danych, architektura wspólnego interfejsu. Pośrednictwo ODBC JDBC.
- Dostęp do baz danych z przeglądarek. Protokół CGI. Serwer WWW Oracle jako przykład.
- Transakcje. Tolerowanie defektów. Odtwarzanie bazy danych. Dziennik systemowy. Synchronizacja współbieżnego dostępu.
- Kategorie transakcji. Realizacja przez blokady. Monitory transakcji.
- Rozproszone bazy danych. Dwufazowe potwierdzanie transakcji.
- Obiektowe bazy danych, CORBA.
Rodzaj: wykład (20), egzamin, VI trymestr
Autorzy programu: Z. Jurkiewicz
Sylabus:
- Tekstowe bazy danych. Dokumenty elektroniczne. Modelowanie obiegu dokumentów. Systemy workflow.
- Bazy danych do przetwarzania analitycznego. Pojęcie hurtowni danych. Fazy budowy. Usuwanie niezgodności.
- Projektowanie hurtowni danych. Denormalizacja. Model gwiazdy.
- Pojęcie wymiaru. Kostki wielowymiarowe. Poziomy agregacji danych. Zwijanie i rozwijanie po wymiarach.
- W.H. Inmon, R.D. Hackharthon, "Using the Data Warehouse".
- R. Kimball, "The Data Warehouse Toolkit", J.Wiley & Sons, 1996.
- M.H. Bracket, "The Data Warehouse Challange".
- Dokumentacja do Oracle Express.
Rodzaj: laboratorium (20 + 20 + 20), zaliczenie na ocenę, IV,
V i VI trymestr
Autorzy programu: Z. Jurkiewicz
Sylabus:
Projekt duzej bazy danych z użyciem Case i aplikacjami w Internecie,
poczynając od analizy systemowej.

