- Nazwa przedmiotu:
- Programowanie obiektowe
- Koordynator przedmiotu:
- dr inż. Piotr Witoński
- Status przedmiotu:
- Fakultatywny ograniczonego wyboru
- Poziom kształcenia:
- Studia I stopnia
- Program:
- Elektronika i Telekomunikacja
- Grupa przedmiotów:
- Przedmioty informatyki - obieralne
- Kod przedmiotu:
- POBZ
- Semestr nominalny:
- 5 / rok ak. 2019/2020
- Liczba punktów ECTS:
- 5
- Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- Liczba godzin kontaktowych - 28 h - w tym:
a) uczestnictwo w zajęciach stacjonarnych - 8 h,
b) uczestnictwo w konsultacjach (poprzez Skype) - 12 h,
c) analiza dokonanej przez nauczyciela oceny projektu - 6 h,
d) uczestnictwo w egzaminie - 2 h.
Praca własna studenta - 95 h - w tym:
a) samodzielne studiowanie materiałów wykładowych - 30;
b) samodzielne studiowanie i rozwiązywanie zadań z ćwiczeń - 20
c) wykonanie projektu - 25
d) przygotowanie się do egzaminu - 20
- 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
- Ćwiczenia15h
- Laboratorium0h
- Projekt15h
- Lekcje komputerowe0h
- Wymagania wstępne:
- Znajomość podstaw programowania proceduralnego w dowolnym języku.
- Limit liczby studentów:
- 30
- Cel przedmiotu:
- Zapoznanie studentów z podstawową wiedzą z obszaru projektowania i implementacji aplikacji zorientowanych obiektowo. Jako język programowania wybrana została Java.
- Treści kształcenia:
- 1. Wprowadzenie
1.1. Zalety (i wady) programowania obiektowego
1.2. Instalowanie Javy
1.3. Korzystanie z dokumentacji
2. Programowanie zorientowane obiektowo
2.1. Zasady programowania obiektowego
2.2. Od projektu do programu - metodologia programowania obiektowego
2.3. Porównanie języków programowania obiektowego: JAVA, PASCAL, C++
3. Podstawowe elementy języka Java
3.1. Typy danych
3.2. Operatory
3.3. Instrukcje sterujące
3.4. Jakie elementy musi zawierać program w JAVIE
3.5. Piszemy pierwszą aplikację
4. Zaawansowane elementy języka Java
4.1. Klasy i obiekty
4.2. Technologia JNI - funkcje rodzime
4.3. Porównanie z innymi językami (PASCAL, C++)
5. Wyjątki krytyczne
5.1. Klasyfikacja wyjątków
5.2. Obsługa wyjątków różnych typów
5.3. Generowanie wyjątków
6. Pakiety - biblioteki Javy
6.1. Pakiety wbudowane
6.2. Tworzenie własnych pakietów
6.3. Pliki archiwalne JAR
6.4. Tworzenie dokumentacji
7. Interfejs graficzny AWT
7.1. Piszemy pierwszą aplikację z interfejsem graficznym
7.2. Elementy sterujące. Podstawowe komponenty
7.3. Rozmieszczanie komponentów. Zarządcy rozkładu
7.4. Tworzenie okien. Systemy menu
7.5. Zdarzenia
8. Interfejs graficzny JFC (Swing) - MATERIAŁ NIEOBOWIĄZKOWY
8.1. Podstawowe komponenty JFC
8.2. Zarządcy rozkładu JFC
8.3. Systemy menu i zarządzanie wyglądem interfejsu graficznego JFC
8.4. Obsługa zdarzeń w interfejsie JFC
9. Programowanie współbieżne - wielowątkowość
9.1. Uruchamianie nowych wątków
9.2. Priorytety
9.3. Przerywanie pracy wątków
9.4. Synchronizacja wątków
9.5. Grupy wątków
9.6. Demony
9.7. Bezpieczne tworzenie interfejsu graficznego aplikacji
9.8. Uruchamianie zewnętrznych programów
10. Operacje wejścia/wyjścia
10.1. Obsługa operacji wejścia/wyjścia
10.2. Serializacja obiektów
10.3. Obsługa baz danych
11. Komunikacja sieciowa
11.1. Podstawy komunikacji sieciowej
11.2. Aplikacja klient-serwer
11.3. Połączenia szyfrowane
11.4. Serwlety - podstawy technologii
12. Aplikacje multimedialne - MATERIAŁ NIEOBOWIĄZKOWY
12.1. Rysunki
12.2. Czcionki
12.3. Obrazy
12.4. Aplety - programy wewnątrz stron internetowych
12.5. Dźwięki
Dodatek: Program Kalkulator - stosowanie dobrych praktyk programistycznych
D.1. Struktura MVC
D.2. Wzorce projektowe
D.3. Komunikacja między głównymi segmentami programu
D.4. Pakiety porządkują projekt
D.5. Uruchomienie programu
D.6. Zmieniamy interfejs graficzny
D.7. Obiektowe szaleństwo - powielamy interfejs graficzny
- Metody oceny:
- Oceniany jest egzamin pisemny składający się z części teoretycznej (za 40 punktów) i praktycznej (za 60 punktów). Zamiast części praktycznej student może wykonać zadanie projektowe.
- Egzamin:
- tak
- Literatura:
- Oficjalna strona Javy:
- Strona główna (ang.) http://www.oracle.com/technetwork/java/index.html
- Ściąganie oprogramowania i dokumentacji (ang.) http://www.oracle.com/technetwork/java/javase/downloads/index.html
- Podręcznik do nauki języka Java (ang.) http://docs.oracle.com/javase/tutorial/
Podręczniki drukowane:
- Bruce Eckel, "Thinking in Java. Edycja polska. Wydanie IV", Wydawnictwo Helion, Gliwice 2011
- Rogers Cadenhead, "Poznaj Java 2 w 24 godziny", Wydawnictwo Infoland, Warszawa 2002
- Krzysztof Walczak, "JAVA Nauka programowania dla początkujących", Wydawnictwo W & W, Warszawa 2002
- Laura Lemay, Rogers Cadenhead, "Java 2 dla każdego", SAMS Publishing, Wydawnictwo Helion, Gliwice 2001
- Michael Morgan, "Poznaj język Java 1.2", Wydawnictwo Mikom, Warszawa 2001
- Steve Potts, "Java w zadaniach", Wydawnictwo Robomatic, Wrocław 2001
- Patrick Naughton, "Podręcznik języka programowania Java", Wydawnictwo Nakom, Poznań 1999
- Witryna www przedmiotu:
- https://red.okno.pw.edu.pl/witryna/home.php
- Uwagi:
- -
Efekty uczenia się
Profil ogólnoakademicki - wiedza
- Charakterystyka POW_01
- Zna metodologię projektowania aplikacji zorientowanych obiektowo.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_W18, K_W19
Powiązane charakterystyki obszarowe:
I.P6S_WG
- Charakterystyka POW_02
- Zna język programowania obiektowego Java.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_W18, K_W19
Powiązane charakterystyki obszarowe:
I.P6S_WG
Profil ogólnoakademicki - umiejętności
- Charakterystyka POU_01
- Potrafi projektować aplikacje zorientowane obiektowo.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_U07, K_U15
Powiązane charakterystyki obszarowe:
I.P6S_UW, III.P6S_UW.4.o
- Charakterystyka POU_02
- Potrafi implementować aplikacje zorientowane obiektowo w języku Java.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_U15, K_U07
Powiązane charakterystyki obszarowe:
III.P6S_UW.4.o, I.P6S_UW
Profil ogólnoakademicki - kompetencje społeczne
- Charakterystyka POK_01
- Zarządzanie procesem powstawania projektu informatycznego.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_K04, K_K06
Powiązane charakterystyki obszarowe:
I.P6S_KK, I.P6S_KO
- Charakterystyka POK_02
- Wybór właściwej technologii do wykonania zadania.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe:
K_K04, K_K06
Powiązane charakterystyki obszarowe:
I.P6S_KK, I.P6S_KO