1. Wprowadzenie do programowania (Java), forma zaliczenia: zaliczenie
- Programowanie i Java
- Typy danych. Operatory i wyrażenia
- Klasy i obiekty I
- Klasy i obiekty II
- Decyzje i wyjątki
- Iteracje
- Tablice. Wprowadzenie do kolekcji
- Przetwarzanie danych: napisy i liczby
- Przetwarzanie danych: liczby, daty, algorytmy
- Programowanie obiektowe I
- Programowanie obiektowe II
- Wprowadzenie do programowania współbieżnego
2. Programowanie aplikacji (Java), forma zaliczenia: zaliczenie
- Strumienie i NIO (new input-output)
- Kolekcje
- Programowanie GUI: komponenty wizualne i kontenery
- Delegacyjny model obsługi zdarzeń
- Rozbudowane możliwości Swingu
- Komponenty Swing i architektura Model-View-Controller
- Dynamiczna Java
- Zaawansowane techniki programowania - przykłady
- Internacjonalizacja aplikacji
- Narzędzia programowania współbieżnego
- Java i bazy danych (JDBC)
- Programowanie klient serwer z użyciem gniazd, kanałów i selektorów
- Aplikacje WEB
3. Systemy operacyjne, forma zaliczenia: egzamin
- Wstęp, historia i zadania systemów operacyjnych.
- Interpreter poleceń 1 – podstawy pracy z interpreterem, proste polecenia, prosta komunikacja.
- Interpreter poleceń 2 – instrukcje strukturalne, pisanie skryptów powłoki.
- Interpreter poleceń 3 – praktyczne wykorzystanie skryptów do pracy w systemie operacyjnym.
- Procesy, stany procesów i algorytmy ich szeregowania.
- Pamięć operacyjna. Strategie zarzadzania: przydział ciągły, stronicowanie segmentacja.
- Pamięć wirtualna – algorytmy wymiany, szacowanie wydajności systemu z pamięcią wirtualną, szamotanie.
- System plików - implementacja systemu plików, oraz metody przydziału miejsca na dysku.
4. Sieci komputerowe, forma zaliczenia: egzamin
- Wstęp do sieci komputerowych. Co to jest Internet? Co to jest protokół? Brzeg sieci, szkielet sieci, komutacja pakietów i komutacja kanałów. Internet rzeczy. Internet wszystkiego.
- Wstęp do sieci komputerowych. Cloud Computing. Sieci dostępowe, media fizyczne, opóźnienie i straty, architektury warstwowe, struktura Internetu, historia Internetu.
- Warstwa aplikacji. Usługi, model klient-serwer, protokół HTTP.
- Warstwa aplikacji. Protokół HTTP. DNS. Programowanie przy pomocy gniazd. Poczta elektroniczna. E-mail. Aplikacje P2P. Grid Computing. Utility Computing.
- Warstwa aplikacji (dokończenie). Warstwa transportu. Wstęp. Niezawodna komunikacja.
- Warstwa transportu. Niezawodna komunikacja, TCP: kontrola natłoku, mechanizmy ACK, obliczanie RTT oraz czasu oczekiwania. Zarządzanie połączeniem.
- Warstwa sieci. Wstęp, algorytmy rutingu. Usługi warstwy sieci (w tym multicast, anycast), wirtualne kanały i sieci datagramowe. Algorytmy stanu łącza (Dijkstra), wektora odległości (Bellman-Ford). Ruting hierarchiczny.
- Warstwa sieci. Adresowanie IP, DHCP, datagram IP, fragmentacja, ICMP, ruting wewnątrz systemu autonomicznego: RIP, OSPF, ruting między systemami autonomicznymi: BGP, architektura wewnętrzna rutera.
- Warstwa łącza. Wstęp. Detekcja i korekcja błędów. Multipleksacja. Podział kanału: TDM, FDM, CDM, Random Access (Aloha, CSMA).
- Warstwa łącza. Technologie sieci LAN. Multipleksacja (dokończenie). Adresowanie LAN, ARP, Ethernet, Token Ring. Łączenie sieci LAN. Huby, mosty, swicze, IEEE 802.11
- Warstwa łącza. ATM, IP-over-ATM, Frame Relay.
- Sieci radiowe. 802.11x. PPP, Bluetooth.
- Ochrona informacji. Wstęp: zagrożenia, ataki, mechanizmy ochronne. Kryptografia symetryczna i asymetryczna. Uwierzytelnienie, podpisy elektroniczne, skróty wiadomości, dystrybucja klucza symetrycznego. PKI, certyfikaty.
- Ochrona informacji. Bezpieczna poczta, SSL, IPSec, IEEE 802.11 WEP, WPA. Honey Pots. Rootkits.
- Zarządzanie sieciami. SNMP, ASN.1. Komunikacja audio/wideo w sieciach IP. Jakość usług (QoS) i jej realizacja w sieciach IP: DiffServ, IntServ. Komunikacja strumieniowa w sieciach IP: RTP, RTSP. Kontrola sesji SCP.
5. Projektowanie relacyjnych baz danych, forma zaliczenia: zaliczenie
- Podstawowe pojęcia dotyczące baz danych.
- Tabele, związki, zapytania, operacje na bazie danych.
- Metoda tworzenia schematu relacyjnej bazy danych za pomocą diagramów związków encji.
- Interfejs użytkownika w aplikacji baz danych – formularze.
- Interfejs użytkownika w aplikacji baz danych – raporty, strony WWW.
- Podstawy procesu projektowania i programowania aplikacji baz danych.
- VBA – język aplikacji bazodanowej.
6. Programowanie w relacyjnych bazach danych, forma zaliczenia: egzamin
- Podstawy SQL.
- Zaawansowany SQL. Deklaratywne więzy spójności.
- Programowanie aplikacji na serwerze bazy danych.
- Obiekty proceduralne bazy danych.
- Obiektowy typ danych.
- Hurtownie danych.
- Rozproszone bazy danych.
7. Projektowanie systemów informacyjnych, forma zaliczenia: egzamin
- Informacje wstępne – historia, podstawowe pojęcia: sterotypy, ograniczenia, klasyfikatory, relacje pomiędzy kategoriami modelowania
- Analiza funkcjonalna – model przypadków użycia
- Analiza strukturalna – model obiektowy (diagram klas i diagram obiektów), pojęcia: klasa a obiekt, atrybut, metoda, operacja, metoda, komunikat, polimorfizm metod
- Analiza strukturalna – model obiektowy, pojęcia: związek generalizacji-specjalizacji, klasa a ekstensja klasy, klasa abstrakcyjna, klasa konkretna, metoda abstrakcyjna, rodzaje generalizacji-specjalizacji klas, przesłanianie metod, przeciążanie metod
- Analiza strukturalna – model obiektowy, pojęcia: asocjacja binarna, agregacja a kompozycja, agregacja rekursywna, asocjacja kwalifikowana, asocjacja n-arna
- Analiza dynamiczna – diagramy aktywności
- >Diagramy pakietów i diagramy komponentów
8. Budowa i integracja systemów informacyjnych, forma zaliczenia: egzamin
- Przedmiot i zagadnienia inżynierii oprogramowania. Kryzys oprogramowania. Źródła złożoności projektu oprogramowania. Modelowanie pojęciowe. Pojęcie metodyki. Modele cyklu życia oprogramowania.
- Przebieg i ocena fazy strategicznej. Określenie zakresu przedsięwzięcia. Decyzje strategiczne. Ocena rozwiązań. Techniki oszacowania nakładów pracy i kosztów.
- Faza określenia wymagań. Trudność określenia wymagań. Jakość opisu wymagań. Wymagania funkcjonalne i niefunkcjonalne. Metody definiowania wymagań użytkowników. Dokument wymagań użytkownika.
- Faza analizy. Model analityczny. Czynności, tematy i techniki analizy. Proces tworzenia modelu obiektowego. Dokument wymagań na oprogramowanie. Plan zapewnienia jakości dla fazy analizy. Kluczowe czynniki sukcesu i rezultaty fazy analizy.
- Faza projektowania. Zadania wykonywane w fazie projektowania. Techniki obiektowe w projektowaniu. Projektowanie składowych systemu nie związanych z dziedziną problemu. Projektowanie interfejsu użytkownika. Projektowanie składowej zarządzania danymi. Optymalizacja projektu. Dostosowanie do ograniczeń i możliwości środowiska implementacji.
- Faza implementacji. Niezawodność oprogramowania. Unikanie i tolerancja błędów. Zasada ograniczonego dostępu. Mocna kontrola typów. Transakcje. Stopnie izolacji transakcji. Środowiska implementacyjne. Czynniki sukcesu i rezultaty fazy implementacji. Narzędzia CASE w fazie implementacji. Zasady i metody dokumentowania kodu. Konwencje nazewnicze.
- Instalacja i konserwacja oprogramowania. Analiza potrzeby wprowadzania modyfikacji. Koszty konserwacji oprogramowania. Kluczowe czynniki sukcesu fazy konserwacji. Narzędzia CASE. Ocena narzędzi CASE. Przyczyny trudności z narzędziami CASE.
- Faza testowania. Przeglądy oprogramowania. Skład zespołu oceniającego oprogramowanie. Audyt projektu informatycznego. Inspekcje. Rodzaje testów. Typowe fazy i metody testowania. Co podlega testowaniu? Określenie niezawodności oprogramowania. Testy funkcjonalne. Eksplozja kombinacji danych testowych. Testy strukturalne. Analizatory przykrycia kodu. Testy statyczne. Bezpieczeństwo oprogramowania. Czynniki sukcesu i rezultaty testowania.
- Zapewnienie jakości oprogramowania. Jakość w terminologii ISO 9000. Polityka i system jakości. Zasady zarządzania jakością. Normy dotyczące jakości. Niedojrzałość i dojrzałość procesów wytwórczych. Plan zapewnienia jakości oprogramowania.
- Miary oprogramowania. Modele i miary wydajności ludzi. Ocena złożoności w planowaniu projektu. Metoda szacowania kosztów COCOMO. Analiza Punktów Funkcyjnych. Wykorzystanie punktów funkcyjnych. Przykłady miar oprogramowania.
9. Zarządzanie projektem informatycznym, forma zaliczenia: egzamin
- Wprowadzenie do zarządzania projektami IT – podstawowe pojęcia zarządzania, projektu i zarządzania projektem, specyfika projektów IT, przyczyny sukcesów i porażek, znaczenie projektów IT w organizacji
- Metodyczne zarządzanie projektem – przegląd metodycznego prowadzenia projektów, przegląd i klasyfikacja metodyk projektowych
- Zarządzanie projektem w warunkach zmienności – przegląd najważniejszych metodyk zwinnych (XP, SCRUM, MSF)
- Ciężkie metodyki projektowe – przegląd najważniejszych metodyk projektowych z grupy metodyk ciężkich PRINCE 2 , PMBOK, obszary zarządzania projektem IT według PMI
- Definiowanie projektu – metody definiowania projektu, identyfikacja celów projektu i jego udziałowców, budowa karty projektu i dokumentu wizji projektu, Plan Zarządzania Projektem Informatycznym SPMP IEEE 1058.1
- Zarządzanie zakresem – metody budowy WBS, identyfikacja zadań i aktywności projektowych, estymacja wielkości zadań i identyfikacja zasobów, SEI CMM
- Zarządzanie czasem – metody planowania, diagramy sieciowe, diagramy Gantta, metody PERT oraz CPM, śledzenie i linie bazowe w projekcie
- Struktura organizacyjna i komunikacyjna – różne struktury organizacyjne w projekcie, dobór struktury organizacyjnej, dobór struktury na tle cyklu życiowego - norma IEEE 1074, protokoły komunikacyjne – metody tworzenia i przykłady zastosowań
- Zarządzanie ryzykiem w projekcie – pojęcie ryzyka i metody walki z ryzykiem, metody zarządzania I śledzenia ryzyka projektowego, taksonomie ryzyk, Plan Zarządzania Ryzykiem
- Śledzenie i kontrola w projekcie – metryki w projekcie, co i jak mierzyć, metody pomiarów, metoda EV, wskaźniki w projekcie, zastosowanie linii bazowej
- Zarządzanie jakością – pojęcie jakości w projekcie, metody zapewnienia jakości, TQM, Plan Zarządzania Jakością SQAP, metryki jakości
10. Hurtownie danych, forma zaliczenia: egzamin.
- Definicja hurtowni danych; OLTP vs OLAP i zapytania analityczne; Dziedziny zastosowań – wspomaganie decyzji, CRM, eksploracja danych, etc.; Perspektywy rynku hurtowni danych; Wyzwania praktyczne – analiza strumieni danych, coraz większe ilości danych; zróżnicowane korzystanie z baz danych (mixed workload).
- Architektura hurtowni danych; Model logiczny – rodzaje; OLAP i agregacje.
- Rodzaje, przetwarzanie i optymalizacja zapytań – różne aspekty; Model fizyczny – indeksy, redundancje, sortowanie, kolumnowe przechowywanie danych, etc.
- Ładowanie danych; integracja danych; Problemy z aktualizacją danych.
- Czynniki jakości hurtowni danych; Przyszłe perspektywy; Podsumowanie.
11. Tworzenie aplikacji .NET, forma zaliczenia: zaliczenie
- HTML i CSS w projektowaniu stron internetowych
- Tworzenie stron internetowych w Visual Studio
- Podstawowe kontrolki serwerowe
- Złożone kontrolki serwerowe
- Sprawdzanie poprawności wprowadzanych danych ( Validacja)
- Błędy w aplikacjach internetowych - obsługa, śledzenie, usuwanie
- Projektowanie witryn internetowych. Tworzenie stron wzorcowych. Kontrolki do nawigacji pomiędzy stronami
- Komunikacja z bazą danych
- Komunikacja z bazą danych - ADO.NET
- Bezpieczeństwo serwisów internetowych
- Zarządzanie stanem w aplikacjach ASP.NET
- Kontrolki użytkownika
- Technologia WebParts
- ASP.NET AJAX
Przykładowe materiały do kursu przez Internet - https://edux.pjwstk.edu.pl/mat/118/lec/index.html