PRZEDMIOT

LICZBA GODZIN

ZAGADNIENIA

Algorytmy i stroktury danych

20

Podstawowe zasady analizy algorytmów:

poprawność,
złożoność obliczeniowa algorytmu (pesymistyczna, oczekiwana),
koszt zamortyzowany: metoda potencjału.
Podstawowe techniki i struktury:

metoda dziel i zwyciężaj,
metoda zachłanna,
programowanie dynamiczne,
transformacyjna konstrukcja algorytmu,
elementarne struktury danych: stosy, kolejki, listy
Sortowanie:

sortowanie przez porównania (InsertionSort, QuickSort, MergeSort),
proste kolejki priorytetowe -  kopce binarne,
HeapSort,
sortowanie pozycyjne,
złożoność problemu sortowania.
Selekcja:

algorytm Hoare'a,
algorytm magicznych piątek.
Wyszukiwanie i proste słowniki:

wyszukiwanie liniowe i binarne,
prosty słownik -  drzewa poszukiwań binarnych,
haszowanie.
Efektywne implementacje słownika:

drzewa AVL,
drzewa typu splay,
B-drzewa.
Złożone struktury danych:

wzmocnione kolejki priorytetowe -  kolejki dwumianowe, kopce Fibonacciego,
efektywne sumowanie zbiorów rozłącznych.
Algorytmy grafowe:

DFS i jego zastosowania,
problemy ścieżkowe -- Algorytm Dijkstry,
minimalne drzewo rozpinające.
Wyszukiwanie wzorca w tekstach:

prefikso-sufiksy,
algorytm Knutha-Morisa-Pratta.
Tekstowe struktury danych:

tablice sufiksowe,
drzewa sufiksowe.
NP- zupełność:

klasa NP,
problemy NP-trudne i NP-zupełne.

Języki i metody programowania, cz.1

48

Wprowadzenie do koncepcji JVM i środowiska Java
Podstawowe pojęcia programowania obiektowego
Język programowania Java – składnia, zmienne, operatory, tablice, instrukcje sterujące
Klasy, obiekty, metody, konstruktory
Dziedziczenie, klasy abstrakcyjne, interfejsy, polimorfizm
Klasy generyczne i kolekcje
Wyjątki
Operacje wejścia/wyjścia
Wielowątkowość
Dostęp do baz danych (JDBC)
Komunikacja sieciowa
Obsługa XML
Interfejs GUI (Swing)

Techniki wytwarzania złożonego oprogramowania

24

Zadania inżynierii oprogramowania
Dyscypliny związane z tworzeniem oprogramowania
Podstawowe modele wytwarzania oprogramowania
Manifest zwinnego tworzenia oprogramowania
Od zbierania wymagań do wdrożenia - proces wytwórczy
Metodyka pracy w zespole SCRUM-owym – role i ich odpowiedzialność, podstawowe zasady współpracy
Cykl produkcyjny w podejściu SCRUM-owym, zdarzenia i artefakty
Wprowadzenie do programowania zorientowanego obiektowo
Notacja UML
Zasady GRASP
Zasady SOLID
Wzorce projektowe
Wprowadzenie do podejścia Domain-Driven Design
Wzorce strategiczne i taktyczne DDD

Bazy danych

48

Wstęp
pojęcie relacyjnej bazy danych
model danych
język SQL – wstęp
Wyświetlanie danych z użyciem języka SQL
budowa zapytania SELECT w języku SQL
aliasy kolumn
wyrażenia arytmetyczne,
praca z wartościami NULL,
łączenie łańcuchów znakowych,
wyświetlanie struktury tabeli.
Ograniczenia i sortowanie danych
użycie klauzuli WHERE
operatory porównań
operatory BETWEEN, IN, LIKE i znaki zastępcze,
warunek NULL
operatory logiczne AND, OR i NOT
sortowanie i klauzula ORDER BY
Użycie funkcji jednowierszowych do personalizacja wyjścia
typy funkcji SQL
funkcje znakowe
funkcje numeryczne
operacje na datach
Używanie funkcji konwertujących i wyrażenia warunkowe
funkcje TO_CHAR, TO_DATE i TO_NUMBER,
funkcje NVL, NVL2, NULLIF, COALESCE,
funkcje CASE i DECODE
Agregacja danych z wykorzystaniem funkcji grupujących
pojęcie funkcji grupującej
wykorzystanie funkcji AVG, SUM, MIN, MAX i COUNT,
wykorzystanie słowa kluczowe DISTINCT,
wykorzystanie klauzul HAVING i ORDER BY.
Wyświetlanie danych z wielu tabel
rodzaje połączeń tabel
konstrukcja SELECT w zapytaniu do wielu tabel i klauzule: ON, USING.
wykorzystanie słów INNER, LESFT, RIGHT, FULL, OUTER do tworzenia różnych rodzajów połączeń tabel
Tworzenie zapytań złożonych z wykorzystaniem podzapytań
rodzaje podzapytań
wykorzystanie słów kluczowych Having, ANY, ALL EXIST w podzapytaniach
Tworzenie zapytań złożonych
rodzaje zapytań złożonych
operatory zapytań złożonych UNION, UNION ALL, INTERSECT, MINUS
Zmiana danych w bazie danych
wyrażenia INSERT, UPDATE, DELETE I TRUNCATE, pojęcie transakcji, słowa kluczowe COMMIT lub ROLLBACK.
Użycie wyrażeń DDL do tworzenia i zarządzania tabelami:
tworzenie tabel z wykorzystanie wyrażenia CREATE TABLE,
tworzenie więzów pomiędzy tabelami z wykorzystaniem: NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY.
Tworzenie pozostałych obiektów schematu bazy danych
widoki,
sekwencje,
indeksy,
synonimy.
Uprawnienia do obiektów bazy danych
tworzenie i kontrola uprawnień użytkowników,
wykorzystanie roli do kontroli praw dostępu.
Zarządzanie obiektami w schemacie bazy danych
Zarządzanie obiektami w schemacie bazy danych
modyfikacja tabel, więzów, indeksów.
Zarządzanie obiektami ze widokami słownika danych
Operowanie na dużych zestawach danych
Zarządzanie danymi w różnych strefach czasowych
Zawansowane tworzenie zapytań z wykorzystaniem podzapytań.
Wyrażenie regularne w Oracle.

Języki i metody programowania - cz. 2

32

Technologie warstwy Web (Servlets/JSP)
Technologie warstwy logiki biznesowej (EJB)
Technologie warstwy danych (Persistence API)
Tworzenie aplikacji JEE Web – struktura aplikacji, uruchamianie i zarządzanie aplikacjami z poziomu serwera aplikacji
Implementacja servletów (Servlets API)
Tworzenie dynamicznych formularzy
Zarządzanie sesją i kontekstem aplikacji
Struts MVC
Tworzenie aplikacji z dostępem do bazy danych
Projektowanie warstwy logiki biznesowej
JSP/JSF

Aplikacje korporacyjne

48

Główne cechy oprogramowania korporacyjnego
Pojęcie architektury aplikacji i stylu architektonicznego, najważniejsze style architektoniczne
Budowanie aplikacji z wykorzystaniem podziału warstwowego i komponentowego
Technologia Java EE – najważniejsze zagadnienia
Budowanie aplikacji z wykorzystaniem Spring Framework
Utrwalanie danych z wykorzystaniem Hibernate
Współczesne technologie graficznego interfejsu użytkownika
Architektura SOA
Technologie usług sieciowych, protokół SOAP, styl REST
Komunikacja za pomocą kolejek
Wprowadzenie do złożonych technik przetwarzania – model aktorowy
Budowanie aplikacji korporacyjnej w środowisku Java EE z wykorzystaniem podejścia Domain-Driven Design

RAZEM:

220