Ta witryna wykorzystuje cookies. Więcej informacji można znaleźć na stronie Polityka dotycząca cookies i podobnych technologii. ZAMKNIJ Zamknij ostrzeżenie dotyczące cookies

Java EE – produkcja oprogramowania

  1. Informacje ogólne
  2. Rekrutacja
  3. Opłaty
  4. Program
  5. Dla słuchaczy
  6. Kontakt
 

Program

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 KSZTAŁCENIA

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.

 

Liczba godz.

Nazwa przedmiotu/kod

Treść przedmiotów

Prowadzący

Wykł.

Ćw.

Razem

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.

A. Pająk
L. Śliwa

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.

R. Podraza
L. Śliwa
M. Prolejko

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ń.

J. Myrcha
M. Prolejko
Ł. Dąbała

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.

Z. Szymański
L. Śliwa

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.

A. Derezińska
Z. Szymański

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.

Z. Szymański
L. Śliwa
K. Chabko

--

16

16

w semestrze 

128

 
 

Liczba godz.

Nazwa przedmiotu/kod

Treść przedmiotów

Prowadzący

Wykł.

Ćw.

Razem

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.

A. Pająk

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.

J. Myrcha
L. Śliwa

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.

A. Derezińska

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.

W. Kamiński

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:

R. Podraza

--

32

32

w semestrze 

112

Razem 

240

Ostatnia modyfikacja: czwartek, 4 lipca 2019, 11:09:27, Dariusz Turlej

x x Aktualności dotyczące nauczania

Hackaton Edge Computing 27-28 września w inkubatorze hub:raum w Krakowie

Edge experience 100

W dniach 27-28 września w inkubatorze hub:raum w Krakowie odbędzie się Edge Experience Hackathon. Hackathon będzie dobrą okazją na przetestowanie działania prototypów i aplikacji mobilnych, dla których obecna infrastruktura chmurowa jest zbyt wolna. 

Czytaj więcej...

Summer School in Computer Graphics

bowling dynamic scene

W połowie lipca odbyła się szkoła letnia Summer School in Computer Graphics. Uczestniczyli w niej studenci z University of Electronic Science and Technology of China w Chengdu.

Czytaj więcej...

Seminarium "Ekonomiczne podstawy biznesu gier komputerowych"

games2_small

14 czerwca (piątek) o 10:15 w sali 120 Aleksy Uchański poprowadzi seminarium "Ekonomiczne podstawy biznesu gier komputerowych".

Czytaj więcej...

Warsztaty Unreal Engine 4

Unreal4 small

3 czerwca o godz. 18:30 w laboratorium CS2 odbędą się warsztaty poświęcone silnikowi gier Unreal Engine 4.

Szczegółowe informacje oraz możliwość zapisów na warsztaty na stronie Galery Warsztatowej  

Czytaj więcej...

HackZurich - największy hackaton w Europie

hackzurich200

HackZurich - największy hackaton w Europie, odbędzie się w tym roku w dniach 27-29 września. W trakcie 40-godzinnych zawodów będzie okazja zmierzyć się z interesującymi, praktycznymi problemami. Zapisy startują 7 czerwca. 

Czytaj więcej...

Projekt SoftPOS (możliwość praktyk)

softPOS small

WEiTI rozpoczyna współpracę przy realizacji software'owego terminala płatniczego (tzw. SoftPOS), pozwalającego na przyjmowanie płatności kartą na urządzeniach mobilnych wyposażonych w system operacyjny iOS/Android. Studenci mogą włączyć się do realizacji projektu w ramach praktyk studenckich.

Czytaj więcej...

Seminarium "Gry dla programistów"

Games for programmers small

21 marca (czwartek) o 12:15 w sali 120 prof. Piotr Gawrysiak poprowadzi seminarium "Gry dla programistów".

Czytaj więcej...

Geospatial Hackaton 22-23 lutego w CZIiTT

geosmartcity_small

W dniach 22-23 lutego w CZIiTT odbędzie się Geospatial Hackathon  - Smart Tools for Smart Cities. Wyzwaniem w konkursie będzie opracowanie aplikacji wspierającej proces tworzenia i rozwoju smart city oraz (geo)partycypacji społecznej z wykorzystaniem tzw. serious games .

Czytaj więcej...

Piętnasty konkurs o nagrodę im. Witolda Lipskiego

wlipski

Piętnasta edycja Nagrody - konkurs 2019
Rada Nagrody ogłasza konkurs piętnastej edycji dorocznej nagrody im. Witolda Lipskiego dla młodych polskich naukowców za dorobek w zakresie informatyki i jej zastosowań. Podstawowym kryterium oceny i wyboru laureata Nagrody jest udokumentowany publikacjami dorobek naukowy kandydatów.

Czytaj więcej...
More.... More....