PRZEDMIOT

LICZBA GODZIN

ZAGADNIENIA

Algorytmy i struktury danych

20

Wprowadzenie do algorytmów:

sposoby reprezentacji algorytmów

podstawowe struktury sterujące

rekurencja

złożoność obliczeniowa algorytmu (pesymistyczna, oczekiwana)

Tablica jako podstawowa struktura danych:
algorytmy wyszukiwania
algorytmy sortowania w miejscu: bąbelkowe, przez wstawianie, przez wybieranie
sortowanie przez zliczanie

Metody projektowania algorytmów:
metoda dziel i zwyciężaj
metoda zachłanna
programowanie dynamiczne

Dynamiczne struktury danych:
lista
kolejka
stos
mapa
zbiór

Algorytmy grafowe:
DFS i BFS
Algorytm Dijkstry
minimalne drzewo rozpinające

Języki i metody programowania, cz.1

48

Wprowadzenie do koncepcji JVM i środowiska Java:

środowisko uruchomieniowe JRE

JVM i kod bajtowy

proces kompilacji i uruchamiania aplikacji 

Cechy języka Java
Podstawowe elementy języka Java

komentarze
typy danych i literały
zmienne i stałe
łańcuchy i sekwencje specjalne
operatory
instrukcje sterujące 

Typ wyliczeniowy
Tablice
Wprowadzenie do programowania obiektowego: 
historia metodologii programowania
podstawowe pojęcia i zasady programowania obiektowego
cechy obiektu.
Programowanie obiektowe:
klasy
konstruktory
pola
metody
modyfikatory dostępu
hermetyzacja
dziedziczenie
klasy abstrakcyjne
interfejsy
polimorfizm
Pakiety
Generyczne listy tablicowe

Techniki wytwarzania złożonego oprogramowania

24

Zadania inżynierii oprogramowania.
Dyscypliny związane z tworzeniem oprogramowania.
Podstawowe modele wytwarzania oprogramowania.
Metodyki zwinne, manifest zwinnego tworzenia oprogramowania, Software Craftsmanship.
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.
Pojęcie architektury aplikacji i stylu architektonicznego, najważniejsze style architektoniczne.
Architektura SOA.
Architektura mikrousług.
Wprowadzenie do podejścia Domain-Driven Design.
Wzorce strategiczne i taktyczne DDD.

Bazy danych

48

Podstawy baz danych:
rola i znaczenie systemów baz danych
architektury i typy systemów baz danych
architektury systemów wykorzystujących bazy danych
system baz danych Oracle – podstawowe informacje.
Pobieranie danych – podstawy:
instrukcja SELECT.
ograniczanie zakresu i liczby zwracanych wyników.
sortowanie pobranych danych.
Projektowanie relacyjnych baz danych.
model konceptualny, model relacyjny
pierwsza, druga i trzecia postać normalna
typy danych.
Modyfikowanie danych:
wstawianie danych
aktualizacja danych
usuwanie danych.
Tworzenie i modyfikacja tabel:
tworzenie tabel
aktualizacja tabel
usuwanie tabel
tworzenie sekwencji i indeksów
klucze główne i klucze obce
zapewnianie unikalności.
Przekształcanie wyników i grupowanie danych:
pola obliczane i aliasy
funkcje dla pojedynczych wartości, funkcje agregujące
grupowanie danych i filtrowanie grup.
Zapytania zagnieżdżone i złączanie tabel:
zapytanie zagnieżdżone.
złączanie tabel – podstawy.
Bazy danych NoSQL – podstawy.
Laboratorium jest realizowane z wykorzystaniem systemu baz danych Oracle.

Języki i metody programowania - cz. 2

32

Dziedziczenie, klasy abstrakcyjne, interfejsy, polimorfizm – kontynuacja.
Klasy generyczne i kolekcje.
Wyjątki.
Operacje wejścia/wyjścia.
Testy jednostkowe.
Wielowątkowość.
Komunikacja sieciowa.
Obsługa JSON.

Aplikacje korporacyjne

48

Główne cechy oprogramowania korporacyjnego.
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 technologii JPA.
Współczesne technologie graficznego interfejsu użytkownika.
Technologie usług sieciowych, protokół SOAP, styl REST.
Komunikacja za pomocą kolejek.
Budowanie aplikacji korporacyjnej w środowisku Java i Spring z wykorzystaniem podejścia Domain-Driven Design.
System kontroli wersji Git.

RAZEM:

220