Nazwa przedmiotu:
Programowanie obiektowe
Koordynator przedmiotu:
dr inż. Piotr Witoński, prof. dr hab. inż. Ryszard Piramidowicz
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. 2020/2021
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:
1
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
  • Ć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://inz.okno.pw.edu.pl/
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_U07, K_U15
Powiązane charakterystyki obszarowe: I.P6S_UW, III.P6S_UW.4.o

Profil ogólnoakademicki - kompetencje społeczne

Charakterystyka POK_01
Zarządzanie procesem powstawania projektu informatycznego.
Weryfikacja: projekt, egzamin
Powiązane charakterystyki kierunkowe: K_K06, K_K04
Powiązane charakterystyki obszarowe: I.P6S_KO, I.P6S_KK
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