- Nazwa przedmiotu:
- Programowanie zdarzeniowe (I)
- Koordynator przedmiotu:
- Roman PODRAZA
- Status przedmiotu:
- Obowiązkowy
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Automatyka i Robotyka
- Grupa przedmiotów:
- Przedmioty techniczne
- Kod przedmiotu:
- PROZ
- Semestr nominalny:
- 3 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 4
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- Udział w wykładach: 15 * 2 h = 30 h
Udział w projekcie (konsultacje): 5 * 2 h = 10 h
Przygotowanie do wykładu, przeglądanie materiałów internetowych, podręczników: 15 h
Przygotowanie do sprawdzianów na wykładzie: 15 h
Realizacja projektu: 56 h
Razem: 30 h + 10 h + 15 h + 15 h + 56 h = 126 h
- Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
- 2
- Język prowadzenia zajęć:
- polski
- Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
- 2
- Formy zajęć i ich wymiar w semestrze:
-
- Wykład30h
- Ćwiczenia0h
- Laboratorium0h
- Projekt30h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Umiejetność programowania obiektowego (w C++)
- Limit liczby studentów:
- 120
- Cel przedmiotu:
- Praktyczne zapoznanie studentów z programowaniem zdarzeniowym w kontekście tworzenia interaktywnych i wielowątkowych aplikacji w Javie.
- Treści kształcenia:
- Treść wykładu:
1. Informacje wstępne o środowisku języka Java: Język, program źródłowy, kompilator, maszyna wirtualna, biblioteki API, konfiguracja JDK, pakiety. Podstawowe elementy programu, typy 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. (2h).
2. Klasy i obiekty, definiowanie klas, tworzenie obiektów, cykl życia obiektu, odśmiecanie pamięci. Definiowanie metod, przeciążenie, sygnatury, metody statyczne, abstrakcyjne, synchronizowane. Tablice. Dziedziczenie i polimorfizm. Interfejsy. Zarządca bezpieczeństwa. Systemowe obiekty wejścia/wyjścia. (2h).
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). Klasy pakietu java.util, java. math, java.io. (2h).
4. Java Beans: idea i konstrukcja, indekser, wzorzec projektowy obserwator, powiadamianie o zmianie własności, kontrola i zatwierdzanie zmiany własności. Trwałość obiektów. Odzwierciedlenie i introspekcja. (2h).
5. Programowanie wielowątkowe: Sytuacje wymagające współbieżności, reagowanie na zdarzenia i wątki. Tworzenie wątków, wątek główny, wątki - demony. Stany wątków, priorytety. Anomalie w programach wielowątkowych, wyścigi, impas, synchronizowanie wątków; instrukcje synchronizujące, metody synchronizowane, monitory. (2h).
6. Wzorzec Model-View-Controller: okoliczności stosowania, alternatywy (2h).
7. Programowanie interfejsu: Abstract Window Toolkit - elementy interfejsu, zdarzenia (2h).
8. Sprawdzian 1 (2h).
9. Programowanie interfejsu: Swing (2h).
10. Klasa Graphics (2h).
11. Programowanie zaawansowane wejścia/wyjścia (2h).
12. Kod uogólniony (generics). Kolekcje. (2h).
13. Komunikacja sieciowa - gniazdka, obsługa http, RMI, JMS. (2h).
14. Mechanizm adnotacji. (2h).
15. Sprawdzian 2 (2h).
Zakres projektu:
W ramach projektu każdy student (indywidualnie lub w zespole) ma zaprojektować, uruchomić i przetestować przenośny program napisanych w języku Java wykorzystujący graficzny interfejs użytkownika i techniki programowania współbieżnego.
- Metody oceny:
- Ocena sprawdzianu 1: 0 - 20 p.
Ocena sprawdzianu 2: 0 - 40 p.
Ocena projektu: 0 - 40 p.
Łącznie: 100 p. (w tym 50 z pracy w semestrze).
Skala ocen:
ocena 5,0: 91 - 100 p.
ocena 4,5: 81 - 90 p.
ocena 4,0: 71 - 80 p. (w tym więcej niż 20 p. z projektu)
ocena 3,5: 61 - 70 p. (w tym więcej niż 20 p. z projektu)
ocena 3,0: 51 - 60 p. (w tym więcej niż 20 p. z projektu)
ocena 2,0: poniżej 51 p. łącznie lub poniżej 21 p. z projektu)
- Egzamin:
- nie
- Literatura:
- [1] Herbert Schildt, “Java. Kompendium programisty”, Wydawnictwo Helion, 2005.
[2] Brutt McLaughlin, David Flanagan, „Java 1.5 Tiger. Zapiski programisty”, Wydawnictwo Helion, 2005.
[3] Bruce Eckel, “Thinking in Java. Edycja polska”, Wydawnictwo Helion, 2001.
[4] Simon Roberts, Philip Heller, Michael Ernest, "The Complete Java 2 Certification Study Guide", Sybex Inc., USA, 1999.
[5] Cay S. Horstmann, Gary Cornel, „Core Java 2. Podstawy”, Wydawnictwo Helion, 2003.
[6] Cay S. Horstmann, Gary Cornel, „Core Java 2. Techniki zaawansowane”, Wydawnictwo Helion, 2003.
[7] online: http://http://docs.oracle.com/javase/tutorial/
- Witryna www przedmiotu:
- https://studia.elka.pw.edu.pl
- Uwagi:
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka PROZ_W01
- Student, który zaliczył przedmiot, posiada podstawową wiedzę na temat: Podstawowego programowania obiektowego w Javie
Weryfikacja: Ocena sprawdzianu 1
Powiązane charakterystyki kierunkowe:
K_W03
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZ_W02
- Student, który zaliczył przedmiot, posiada podstawową wiedzę na temat: Tworzenie prostego graficznego interfejsu użytkownika
Weryfikacja: Ocena sprawdzianu 1
Powiązane charakterystyki kierunkowe:
K_W03
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZ_W03
- Student, który zaliczył przedmiot, posiada podstawową wiedzę na temat: Podstaw programowania współbieżnego
Weryfikacja: Ocena sprawdzianu 2
Powiązane charakterystyki kierunkowe:
K_W03
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka PROZ_W04
- Student, który zaliczył przedmiot, posiada podstawową wiedzę na temat: Wybranych elementów technologii Javy
Weryfikacja: Ocena sprawdzianu 2
Powiązane charakterystyki kierunkowe:
K_W03
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil ogólnoakademicki - umiejętności
- Charakterystyka PROZ_U01
- Student, który zaliczył przedmiot, potrafi: Zaprojektować, uruchomić i przetestować przenośny program napisanych w języku Java wykorzystujący graficzny interfejs użytkownika i techniki programowania współbieżnego
Weryfikacja: Ocena projektu
Powiązane charakterystyki kierunkowe:
K_U21, K_U01, K_U02, K_U10
Powiązane charakterystyki obszarowe:
III.P6S_UW.1.o, III.P6S_UW.2.o, III.P6S_UW.3.o, III.P6S_UW.4.o, I.P6S_UW, I.P6S_UK
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka PROZ_K01
- Student potrafi prowadzić negocjacje prowadzące do uzgodnienia i uszczegółowienia realizowanego projektu
Weryfikacja: Ocena z projektu
Powiązane charakterystyki kierunkowe:
K_K03, K_K04
Powiązane charakterystyki obszarowe: