Kod przedmiotu 07 67 4010 20
Liczba punktów ECTS 6
Nazwa przedmiotu w języku prowadzenia
Component Programming
Nazwa przedmiotu w języku polskim Component Programming ( Programowanie komponentowe)
Nazwa przedmiotu w języku angielskim
Component Programming
Język prowadzenia zajęć angielski
Poziom studiów studia I stopnia
Kierownik przedmiotu dr inż. Marcin Kwapisz, dr hab. inż. Adam Niewiadomski
Realizatorzy przedmiotu dr inż. Łukasz Chomątek, dr inż. Marcin Kwapisz
Formy zajęć i liczba godzin w semestrze
Wykład Ćwiczenia Laboratorium Projekt Seminarium Inne Suma godzin w semestrze
Godziny kontaktowe 30 30 0 60
Czy e-learning Nie Nie Nie Nie Nie Nie
Kryteria oceny (waga) 0,40 0,60 0,00
Cel przedmiotu
  1. Zapoznanie studentów z ideą programowania komponentowego
  2. Wykorzystanie języka programowania Java i powiązanych z nią: produktów, narzędzi, bibliotek i technologii służących do tworzenia zorientowanego na komponenty oprogramowania (w sensie obiektowym).
Efekty kształcenia
  1. WYJAŚNIA SPECYFIKACJĘ trójwarstwowej architektury oprogramowania, czyli warstwy dostępu do danych, logiki aplikacji i interfejsu użytkownika,
  2. UŻYWA DOKUMENTACJI TECHNICZNEJ standardowych pakietów/bibliotek w języku niezależnym sprzętowo, w szczególności najczęściej używanych komponentów reprezentujących struktury danych i algorytmy ich przetwarzania,
  3. ROZPOZNAJE PODSTAWOWE MECHANIZMY I METODY komunikacji pomiędzy oprogramowaniem i zewnętrznymi źródłami danych, np. relacyjnymi bazami danych,
  4. PROJEKTUJE hierarchie klas i pakietów w celu programowania komponentów wielokrotnego wykorzystania spełniających wymagania architektury wielowarstwowej i zadań przypisanych do każdej warstwy,
  5. STOSUJE proste kody i komponenty oraz TWORZY własne pakiety/biblioteki, klasy i metody wchodzące w skład warstwy logiki aplikacji i warstwy dostępu do danych,
  6. STOSUJE pakiety i komponenty w technologiach o źródłach otwartych do projektowania warstwy logiki aplikacji i warstwy dostępu do danych,
  7. ADAPTUJE wybrane mechanizmy i metody komunikacji do oprogramowania projektowanego i implementowanego zgodnie z wymaganiami architektury trójwarstwowej przy użyciu komponentów
  8. KOMUNIKUJE tworzone oprogramowanie z użytkownikami oraz zewnętrznymi źródłami danych używając wybranych komponentów i pakietów przy pomocy graficznego interfejsu użytkownika (GUI),
  9. OCENIA zgodność własnych i innych przykładowych projektów z wymaganiami trójwarstwowej architektury aplikacji,
  10. DYSKUTUJE I OCENIA użyteczność i zgodność przykładowych komponentów, bibliotek/pakietów w wybranej technologii i JEST W STANIE ZAPROPONOWAĆ ULEPSZENIA poprzez dziedziczenie klas i nadpisywanie ich metod.
Metody weryfikacji efektów kształcenia
efekty 1-7 -> ocena ćwiczeń laboratoryjnych, ocena testu laboratoryjnego, ocena z egzaminu

Ocena z laboratorium jest średnią ocen z praktycznego testu laboratoryjnego
Ocena końcowa jest średnią ważoną z egzaminu wykładowego (40%) i laboratorium (60%)
        50%-59.99% - 3
        60%-69.99% - 3.5
        70%-79.99% - 4
        80%-89.99% - 4.5
        90%-100% - 5
Wymagania wstępne
Podstawy programowania, Programowanie obiektowe, dobra znajomość języka C/C++
Treści kształcenia z podziałem na formy
WYKŁAD
Podstawy języka programowania Java
Testowanie jednostkowe
Dostęp i dziedziczenie, przeciążanie i nadpisywanie metod
Przykłady wzorców projektowych
Typy generyczne. Kolekcje i mapy i ich hierarchie
Wyjątki
Standardowe interfejsy Java
Maven i hierarchie projektów, moduły oprogramowania
Architektura wielowarstwowa
Zaawansowane operacje I/O
Internacjonalizacja i lokalizacja aplikacji
Kontenery DI/IoC na przykładzie CDI


ĆWICZENIA LABORATORYJNE
Instalacja i konfiguracja środowiska programistycznego
Projektowanie i implementacja algorytmów do rozwiązania prostego problemu
Konfiguracja projektu - sprawdzanie zgodności ze stylem i standardami kodowania, pokrycie kodu testami
Architektura komponentowa aplikacji z wykorzystaniem interfejsów
Obiektowy model danych
Mapy i kolekcje
Podstawowe operacje I/O. Komponenty dostępu do danych - serializacja
Wykorzystanie interfejsów standardowych
Wielomodułowy i wielowarstwowy projekt aplikacji z GUI. Mechanizmy internacjonalizacji i lokalizacji
Test praktyczny
Własne hierarchie wyjątków i zapisywanie zdarzeń do dziennika
Komponenty dostępu do danych - baza danych, JDBC/JPA
Literatura podstawowa
  1. Cay S. Horstmann, Core Java Volume I--Fundamentals, 10th Edition, 2017 (11th Ed. available in 2018)
  2. Cay S. Horstmann, Core Java, Volume II--Advanced Features, 10th Edition, 2017 (11th Ed. available in 2018)
  3. Martin Fowler, Kent Beck, Refactoring: Improving the Design of Existing Code, 1999 (2nd Ed. available in 2018)
  4. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Pearson, 2000
  5. Bloch J.: Effective Java, 3rd Ed., Pearson Education, 2017
  6. Java Language Specification https://docs.oracle.com/javase/specs/
  7. Java Community Process http://jcp.org
Literatura uzupełniająca
  1. http://code.makery.ch/library/javafx-8-tutorial
  2. http://docs.oracle.com/javase/8/javase-clienttechnologies.htm
  3. http://www.mkyong.com/all-tutorials-on-mkyong-com/
  4. https://dzone.com/refcardz/javafx-8-1
Przeciętne obciążenie godzinowe studenta pracą własną
166
Uwagi
Aktualizacja