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: