Java EE ― Program nauczania

 
Informacje ogólne | Rekrutacja | Opłaty | Program | Wiadomości | Kontakt | Prowadzący
Java EE — produkcja oprogramowania
PROGRAM NAUCZANIA

Nauczanie programowania w języku JAVA zaczynamy od podstaw, jednak musimy utrzymywać dość duże tempo nauczania ze względu na pewną liczbę dość zaawansowanych zagadnień poruszanych w ramach programu. Przyszli słuchacze w bilansie czasu powinni uwzględnić naukę własną i prace domowe. Osoby, które nie miały styczności z programowaniem powinny się zastanowić, czy nie mając doświadczeń w programowaniu powinny zapisywać się na te studia, czy raczej nabrać doświadczenia korzystając z innej formy nauczania.

Program studiów ma charakter praktyczny i obejmuje 240 godz. zajęć (w tym 168 godzin zajęć laboratoryjnych i projektowych) realizowanych w ciągu dwóch semestrów.

TREŚCI KSZTAŁCENIA
  Liczba godz.
Nazwa przedmiotu (kod) Treść przedmiotu Wyk Ćwi
SEMESTR 1        

Podstawy programowania w Javie

( PPJ )

Ogólna charakterystyka języka, nowe podejście do przenośności i bezpieczeństwa kodu. Kompilacja i wykonanie, program źródłowy, kod bajtowy, maszyna wirtualna. Ewolucja języka, obecny status biznesowy technologii Java. Zarządzanie projektem. Komponowanie programu, klasy, metody, deklaracje, instrukcje, wy­rażenia. Konwencje nazewnicze. Reguły gramatyczne: poziom leksykalny i składnia bezkonteks­towa. Słowa kluczowe, identyfikatory, literały, operatory, separatory i ogra­niczniki. Operacje we/wy oraz wyrażenia i instrukcje. Konwersje. Statyczna kontrola typów. Deklarowanie i ini­cjowanie zmiennych/obiektów, cykl życia.  Klasa String. Współpraca z konsolą. Obliczenia na typach prymitywnych, instrukcje wyrażeniowe, przypisania. Przetwarzanie tablic, iteracje while, do, dwie wersje instrukcji for; instrukcje sterujące. Przetwarzanie łańcuchów znakowych. Definiowanie klasy, składowe instancyjne, składniki statyczne. Specyfikacje dostępności. Definiowanie metod, parametryzacja, przeciążanie. Konstruktory. Dziedziczenie rozszerzające klasy, klasa bazowa implikowana Object, polimor­fizm metod. Jedno­czesne dziedziczenie rozszerzające i dziedziczenie ról. Eksplorowanie środowiska Java. Komentowanie. Dokumentacja pakietów i klas platformy. Narzędzia pomocnicze w JDK. 6 10 16

Programowanie obiektowe

( OBI )

Odnośniki. Używanie klas predefiniowanych. Tworzenie własnych klas. Relacje pomiędzy klasami. Dostępność. Enkapsulacja. Konstruktory: bezargumentowy, przeciążony, wywołanie. Metody. Przeciążanie metod. Inicjacja pól. Pola i metody statyczne. Stałe statyczne. Metoda main(). Metody fabryczne. Niszczenie obiektów. Importowanie klas, dodawanie klasy do pakietu, zasięg. Komentarze dokumentacyjne. Wskazówki dotyczące projektowania klas. Klasy bazowe i pochodne. Hierarchia dziedziczenia. Polimorfizm. Wiązanie dynamiczne. Ograniczenie. Rzutowanie. Klasy i metody abstrakcyjne. Klasy wyliczeniowe. Wskazówki dotyczące dziedziczenia. Klasa Class. Analiza funkcjonalności. Podstawy obsługi wyjątków. Zastosowanie refleksji do analizy obiektów. Interfejsy i klasy wewnętrzne. Właściwości interfejsów. Interfejsy a klasy abs­trakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do stanu obiektu. Lokalne klasy zewnętrzne. Dostęp do zmiennych finalnych z metod zewnętrznych. Anonimowe klasy wewnętrzne. Statyczne klasy wewnętrzne. 12 20 32

Programowanie zdarzeniowe

( ZDA )

Podstawy obsługi zdarzeń. Pojęcie zdarzenia. Klasy i obiekty słuchaczy. Rejestracja słuchaczy. Obsługa naciśnięcia przycisku. Rozpoznawanie obiektu zdarzenia. Zastosowanie klas anonimowych do implementacji słuchacza zdarzeń. Zdarzenia semantyczne.
Zaawansowana obsługa zdarzeń. Hierarchia zdarzeń. Przechwytywanie zdarzeń okna. Obsługa kliknięcia myszy. Typy zdarzeń niskiego poziomu. Zdarzenia dotyczące myszki. Zdarzenia klawiatury. Multicasting. Kolejka zdarzeń. Definiowanie własnych zdarzeń.
6 10 16

Interfejs użytkownika

( INU )

Prezentacja aplikacji z graficznym interfejsem użytkownika – przegląd możliwości. Przegląd podstawowych ele­mentów interfejsu użytkownika wraz ze sposobami ich wykorzystania (m.in. pola wyboru, przełączniki, listy, suwaki). Projektowanie formularzy i okienek dialogowych. Metody projektowania i roz­mieszczania elementów w oknach dialogowych. Wykorzystanie paneli. Tworzenie menu. Ob­sługa zdarzeń.
Architektura Model-View-Controller. Serializacja. Zaawansowane elementy interfejsu użytkownika. Tworzenie elementów interfejsu użytkownika z niestandardową zawartością. Rysowanie. Obsługa ikon i czcionek, rysowanie dowolnych elementów, prosta ani­macja.
12 20 32

Produkcja i testowanie oprogramowania

( PTE )

Strategie produkcji oprogramowania. Tworzenie testów z te­stowaniem istniejącego kodu, wytwarzanie sterowane testami. Testowanie jednostkowe i integracyjne. Projektowanie testów: przypadek testowy (dane testowe, wyrocznia). Testy jednostkowe w Javie (annotacje, asercje) organizacja i uruchamianie z JUnit. Dobre praktyki testowania jednostkowego. Wybrane metody testowania oprogramowania, kryteria wyboru testów, testy białej i czarnej skrzynki, klasy równoważności, pokrycie strukturalne kodu. Proces testowania, testy hierarchii obiektów, testy GUI, testy systemowe, testy regresyjne, akceptacyjne. Wykorzystanie dublerów w wytwarzaniu i testowaniu kodu. Poprawa jakości kodu. Wzorce projektowe. Refaktoryzacja kodu, zapachy w ko­dzie, przykładowe przekształcenia refaktoryzacyjne. 6 10 16

Projekt przejściowy

( PRP )

Celem przedmiotu jest wykorzystanie w praktyce i utrwalenie wiedzy zdobytej w trakcie semestru. Słuchacz pod koniec semestru pisze i samodzielnie uruchamia w laboratorium program pod opieką prowadzącego przedmiot. Przykładowe programy to: kalkulator, zegar, edytor figur graficznych itp. Słuchacz ma zrealizować zadaną funkcjonalność. Zasadą jest, że słuchacz wykonuje projekt pod bezpośrednim nadzorem prowadzącego, który dodatkowo robi specjalny przegląd postępów po dwunastej godzinie projektu. Celem jest stworzenie warunków zachęcających słuchaczy do samodzielności działania, bez korzystania z pomocy innych słuchaczy. -- 16 16
w semestrze  128
...
  Liczba godz.
Nazwa przedmiotu (kod) Treść przedmiotu WYK ĆWI
SEMESTR 2        

Struktury danych

( STD )

Obiekty, typy, struktury danych, metody agregowania; struktury statyczne i dynamiczne, liniowe, drzewiaste, grafowe. Ocenianie złożoności pamię­ciowej i czasowej struktur i operacji na nich. Krotki, wektory, listy, stosy, kolejki i kopce; operacje; interfejsy struktur liniowych. Algorytmy rekurencyjne, przykłady problemów i rozwiązań; drzewa, rekurencyjne scenariusze eksploracji; drzewa binarne szukania, zrównoważone. zbiory i drzewa, operacje na zbiorach roz­łącznych. Interfejsy. Sortowanie. Przegląd algorytmów, złożoność pesymistyczna i oczekiwana. Grafy skierowane, nieskierowane, ważone, koszt reprezentacji, operacje zwiedzania w głąb i wszerz; badanie właściwości, metoda zachłanna, programowanie dynamiczne; wyznaczanie minimalnego drzewa rozpinającego, naj­krótsze ścieżki w grafie. 6 10 16

Aplikacje w technologii Java EE

( ATJ )

Aplikacje internetowe w technologii Java. Protokół HTTP. Serwlety.  JSP. Kontenery serwletów i kontenery ziaren. Technologie JSF. Mechanizm odwróconego sterowania, wstrzykiwanie zależności, konteksty. Sewery aplikacji Java EE i ziarna. Typy ziaren, metody implementacji. Wykorzystanie adnotacji. Sposoby testowania. Konfiguracja serwerów aplikacji. Metody uwierzytelniania, typowe zagrożenia i metody zabezpieczeń. Technologia JMS. Wykorzystanie komunikatów. Rozgłaszanie. Ziarenka sterowa­ne komunikatami.  Usługi internetowe. Metody implementacji usług. 12 20 32

Wybrane elementy technologii Java

( WET )

Wielowątkowość. Procesy i wątki: uruchamianie i przerywanie. Zagrożenia współ­bieżnego wykonania, wyścig, zakleszczenie. Struktury danych wspierające bez­pieczne wątki. Stany i właściwości wątków. Mechanizmy synchronizacji, blokady, warunki. Egzekutory i syn­chronizatory. Bezpieczeństwo. Przegląd mechanizmów zapewniających bezpieczeństwo. Ładowanie klas. Weryfikacja kodu maszyny wirtualnej. Zarządzanie bezpieczeństwem operacji wykony­wanych na maszynie wirtualnej, zbiory pozwoleń, udzielanie pozwoleń. Mechanizm podpisy­wania apletów, podpis cyfrowy, certyfikaty. Podpisywanie kodu. Szyfrowanie, szyfrowanie sy­metryczne, szyfrowanie kluczem publicznym. 6 10 16

Obsługa baz danych

( OBD )

Podstawowe pojęcia: baza danych, system zarządzający, tabele, relacje, zapytanie itp. oraz podstawy działania systemów baz danych.
Podstawy języka SQL. Wprowadzenie do tworzenia zapytań. Zapytania zwykłe, manipulujące danymi oraz definiujące i kontrolujące dane. Budowanie złożonych zapytań. Dostęp do baz danych ze środowiska Java. Architektura JDBC, zestawianie połą­czenia z bazą danych, wykonywanie przedstawionych wcześniej zapytań z poziomu kodu. Zaawansowane pojęcia baz danych. Konfigurowanie środowiska do współ­pracy z bazą danych. Transakcje i wycofywanie zmian.
6 10 16

Projekt końcowy

( PRK )

Projekt końcowy polega na samodzielnym napisaniu, uruchomieniu i udokumentowaniu pro­gramu wykorzystującego technologie poznane na drugim semestrze. Projekt końcowy kończy się prezentacją wyników przed komisją oceniającą oraz grupą słuchaczy. Projekt końcowy może być realizowany w zespołach 2-3 osobowych pod warunkiem precyzyjnego udokumentowania wkładu pracy każdego z członków zespołu, aby możliwe było wystawienie niezależnej oceny każdej z osób. Przykładowa tematyka projektu końcowego: planszowe gry sieciowe, komunikator, radio internetowe, przeglądarka zdjęć. Załącznik:

Realizacja projektu końcowego (.pdf, 211,66 kB)
-- 32 32
w semestrze  112
Razem  240
« Opłaty Wiadomości »