- Nazwa przedmiotu:
- Programowanie zdarzeniowe (E)
- Koordynator przedmiotu:
- Krystian IGNASIAK
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Telekomunikacja
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- PROZE
- Semestr nominalny:
- 4 / rok ak. 2018/2019
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- 113
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 2,5
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 3
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Zaliczenie przedmiotu Programowanie obiektowe
- Limit liczby studentów:
- 120
- Cel przedmiotu:
- Zapoznanie słuchaczy ze specyfiką środowiska języka Java oraz ze zdarzeniową metodyką tworzenia aplikacji interaktywnych i wielowątkowych. Celem zajęć projektowych jest nabycie praktycznych umiejętności programowania interaktywnych aplikacji w środowisku języka Java na przykładzie gry, także z możliwością grania w sieci.
- Treści kształcenia:
- Treści wykładu:
1. Informacje wstępne o środowisku języka Java: język, program źródłowy, kompilator, maszyna wirtualna, bibilioteki API, konfiguracja JDK, pakiety. Przykład porównujący prosty program konsolowy w C++ i w Javie. Aplikacje i aplety.
2. Przegląd języka: podstawowe elementy programu, system typów języka Java, typy wbudowane, stałe, zmienne, operatory i wyrażenia, instrukcje strukturalne i sterujące - porównanie z C++. Bloki, zakresy interpretacji nazw. Obsługa sytuacji wyjątkowych, instrukcja try-catch-finally. Klasy i obiekty, definiowanie klas, tworzenie obiektów, cykl życia obiektu. Definiowanie metod, przeciążenie, sygnatury, metody statyczne, abstrakcyjne, synchronizowane. Praca z tablicami. Dziedziczenie i polimorfizm. Interfejsy. System kontroli dostępu. System WE/WY. Zarządzanie pakietami i plikami źródłowymi.
3. Przegląd klas i pakietów podstawowych: klasy pakietu java.lang (Object, obiektowe klasy numeryczne, klasa String, hierarchia wyjątków, System, Runnable, Thread). Pakiety java.util, java.io, java.aplet. Kolekcje danych. Ogólna charakterystyka JFC.
4. Wzorce programistyczne i projektowe (strukturalne, behawioralne, tworzące).
5. Programowanie zdarzeniowe: przegląd komponentów wizualnych, typowe przykłady projektowania aplikacji interakcyjnych, projektowanie interfejsu graficznego. Pakiet javax.swing, współzależność pakietów Swing, AWT i JFC, model delegacyjny obsługi zdarzeń, klasa zdarzeniowa. Programowanie apletów, operacje graficzne, reagowanie na zdarzenia pochodzące od myszki i klawiatury, definiowanie kursorów. Przetwarzanie obrazów, stosowanie rozkładów komponentów, oprogramowanie animacji.
6. Programowanie wielowątkowe: sytuacje wymagające współbieżności, reagowanie na zdarzenia i wątki. Tworzenie wątków, wątek główny. Stany wątków, priorytety wątków. Anomalie w programach wielowątkowych, wyścig, impas, synchronizowanie wątków; instrukcje synchronizujące, metody synchronizowane, monitory. Narzędzia z pakietu java.util.concurrent.
7. Inne pakiety JDK: Ogólny przegląd pakietów standardowych z punktu widzenia dziedzin zastosowań: programowanie rozproszone, RMI, współpraca z bazami danych, programowanie komponentowe, JavaBeans.
W ramach zajęć projektowych słuchacze zaprojektują interaktywną grę sieciową, zaimplementują ją oraz przygotują dokumentację techniczną i dokumentację użytkownika wytworzonego oprogramowania. Treści zajęć projektowych:
1. Projektowanie oprogramowania, tworzenie dokumentacji, tworzenie instrukcji użytkownika;
2. Tworzenie interaktywnych aplikacji z graficznym sprzęgiem użytkownika; obsługa zdarzeń GUI generowanych przez użytkownika; oprogramowanie animacji
3. Oprogramowanie aplikacji współbieżnych i rozproszonych w metodyce zdarzeniowej;
4. Oprogramowanie komunikacji sieciowej w architekturze klient-serwer;
5. Wykorzystanie standardowych klas bibliotecznych Javy.
- Metody oceny:
- Przedmiot jest oceniany na podstawie sumy punktów uzyskanych z dwóch sprawdzianów przeprowadzanych na zajęciach wykładowych (maksymalnie 35 punktów) i obrony zrealizowanego projektu sieciowej gry interaktywnej (maksymalnie 65 punktów).
Warunkiem zaliczenia przedmiotu jest uzyskanie łącznie co najmniej 51 punktów (na 100 możliwych) przy minimum 18 punktach z części za sprawdziany.
- Egzamin:
- nie
- Literatura:
- 1. Dokumentacja JDK, http://www.oracle.com/technetwork/java/javase/documentation/index.html
2. Dokumentacja API JDK http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html
3. Java Tutorial, http://docs.oracle.com/javase/tutorial/
4. B. Eckel, Thinking in Java. Edycja polska, wyd. IV, Helion, 2006 (także aktualne wersje dostępne on-line)
- Witryna www przedmiotu:
- http://ztv.ire.pw.edu.pl/proze/
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka PROZE-W1
- Ma podstawową wiedzę na temat programowania obiektowego w Javie
Weryfikacja: Sprawdzian 1
Powiązane charakterystyki kierunkowe:
K_W04
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZE-W2
- Ma podstawową wiedzę na temat zastosowania bibliotek standardowych Javy
Weryfikacja: Sprawdzian 1
Powiązane charakterystyki kierunkowe:
K_W04, K_W13, K_W15
Powiązane charakterystyki obszarowe:
I.P6S_WG, III.P6S_WG.o
- Charakterystyka PROZE-W3
- Ma podstawową wiedzę na temat tworzenia graficznego interfejsu użytkownika
Weryfikacja: Sprawdzian 1
Powiązane charakterystyki kierunkowe:
K_W04, K_W13
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZE-W4
- Ma podstawową wiedzę na temat programowania współbieżnego
Weryfikacja: Sprawdzian 2
Powiązane charakterystyki kierunkowe:
K_W04, K_W13
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZE-W5
- Ma podstawową wiedzę na temat programowania sieciowego w Javie
Weryfikacja: Sprawdzian 2
Powiązane charakterystyki kierunkowe:
K_W04, K_W13
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZE-W6
- Ma podstawową wiedzę na temat specyfiki środowiska programistycznego Javy
Weryfikacja: Sprawdzian 2
Powiązane charakterystyki kierunkowe:
K_W04, K_W13, K_W15
Powiązane charakterystyki obszarowe:
I.P6S_WG, III.P6S_WG.o
Profil ogólnoakademicki - umiejętności
- Charakterystyka PROZE-U1
- Potrafi zaprojektować, zaimplementować, uruchomić i przetestować program w Javie z graficznym interfejsem użytkownika, komunikujący się w sieci, w architekturze klient-serwer
Weryfikacja: Obrona projektu
Powiązane charakterystyki kierunkowe:
K_U01, K_U03, K_U05, K_U09, K_U13
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.2.o, I.P6S_UU, III.P6S_UW.4.o, III.P6S_UW.3.o
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka PROZE-K1
- Potrafi pracować indywidualnie i w zespole
Weryfikacja: Obrona projektu
Powiązane charakterystyki kierunkowe:
K_K01, K_K03, K_K04
Powiązane charakterystyki obszarowe: