Nazwa przedmiotu:
Programowanie zdarzeniowe (E)
Koordynator przedmiotu:
Krystian IGNASIAK
Status przedmiotu:
Fakultatywny ograniczonego wyboru
Poziom kształcenia:
Studia I stopnia
Program:
Elektronika
Grupa przedmiotów:
Przedmioty techniczne
Kod przedmiotu:
PROZE
Semestr nominalny:
4 / rok ak. 2019/2020
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_W03, K_W04
Powiązane charakterystyki obszarowe:
Charakterystyka PROZE-W2
Ma podstawową wiedzę na temat zastosowania bibliotek standardowych Javy
Weryfikacja: Sprawdzian 1
Powiązane charakterystyki kierunkowe: K_W03, K_W04
Powiązane charakterystyki obszarowe:
Charakterystyka PROZE-W3
Ma podstawową wiedzę na temat tworzenia graficznego interfejsu użytkownika
Weryfikacja: Sprawdzian 1
Powiązane charakterystyki kierunkowe: K_W03, K_W04
Powiązane charakterystyki obszarowe:
Charakterystyka PROZE-W4
Ma podstawową wiedzę na temat programowania współbieżnego
Weryfikacja: Sprawdzian 2
Powiązane charakterystyki kierunkowe: K_W03, K_W04
Powiązane charakterystyki obszarowe:
Charakterystyka PROZE-W5
Ma podstawową wiedzę na temat programowania sieciowego w Javie
Weryfikacja: Sprawdzian 2
Powiązane charakterystyki kierunkowe: K_W03, K_W04
Powiązane charakterystyki obszarowe:
Charakterystyka PROZE-W6
Ma podstawową wiedzę na temat specyfiki środowiska programistycznego Javy
Weryfikacja: Sprawdzian 2
Powiązane charakterystyki kierunkowe: K_W04, K_W03
Powiązane charakterystyki obszarowe:

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_U04, K_U05, K_U08, K_U10, K_U18
Powiązane charakterystyki obszarowe:

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: