Kod przedmiotu |
07 67 4010 30 |
Liczba punktów ECTS |
6 |
Nazwa w języku prowadzenia |
Component Programming |
Nazwa w języku polskim |
Component Programming (Programowanie komponentowe) |
Nazwa w języku angielskim |
Component Programming |
Język prowadzenia zajęć |
angielski |
Formy zajęć
Liczba godzin w semestrze |
|
Wykład |
Ćwiczenia |
Laboratorium |
Projekt |
Seminarium |
Inne |
E-learning |
Godziny kontaktowe |
30 |
|
30 |
|
|
|
|
Kształcenie na odległość |
Nie |
Nie |
Nie |
Nie |
Nie |
Nie |
Nie |
Udział wagowy w ocenie końcowej. |
0,40 |
|
0,60 |
|
|
|
|
|
Jednostka prowadząca |
Instytut Informatyki |
Kierownik przedmiotu |
dr inż. Marcin Kwapisz |
Realizatorzy przedmiotu |
dr inż. Marcin Kwapisz, mgr inż. Wiktor Wandachowicz |
Wymagania wstępne |
Object Oriented Programming |
Przedmiotowe efekty uczenia się |
- WYJAŚNIA SPECYFIKACJĘ trójwarstwowej architektury oprogramowania, czyli warstwy dostępu do danych, logiki aplikacji i interfejsu użytkownika,
- 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
- 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,
- ROZPOZNAJE PODSTAWOWE MECHANIZMY I METODY komunikacji pomiędzy oprogramowaniem i zewnętrznymi źródłami danych, np. relacyjnymi bazami danych
- 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
- 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
- STOSUJE pakiety i komponenty w technologiach o źródłach otwartych do projektowania warstwy logiki aplikacji i warstwy dostępu do danych
- ADAPTUJE wybrane mechanizmy i metody komunikacji do oprogramowania projektowanego i implementowanego zgodnie z wymaganiami architektury trójwarstwowej przy użyciu komponentów
- 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)
- OCENIA zgodność własnych i innych przykładowych projektów z wymaganiami trójwarstwowej architektury aplikacji
|
Metody weryfikacji przedmiotowych efektów uczenia się |
Efekty kształcenia 1-10: ocena ćwiczeń laboratoryjnych, ocena testu praktycznego z zajęć laboratoryjnych, ocena z egzaminu
|
Kierunkowe efekty uczenia się |
- potrafi zaprojektować, wdrożyć i ocenić rozwiązanie informatyczne na podstawie zdefiniowanych wymagań
|
Formy i warunki zaliczenia przedmiotu |
Ocena w wykładu jest oceną z egzaminu relizowanego w formie quizu (test wielokrotnego wyboru) na platformie Wikamp
Ocena z laboratorium jest średnią oceny z praktycznego testu z zajęć laboratoryjnych (50%) i ćwiczeń laboratoryjnych (50%)
Ocena końcowa jest średnią ważoną ocen z wykładu (40%) i zajęć laboratoryjnych (60%)
Do egzaminu mozna podejść tylko w przypadku zaliczonego laboratorium
Laboratorium i egzamin uznaje się za zaliczony w przypadku uzyskania ponad 50% |
Szczegółowe treści przedmiotu |
WYKŁAD
1. Wprowadzenie do języka programowania Java: typy danych, instrukcje, algorytmy
2. Własne kolekcje, wzorzec projektowy iteratora, interfejsy i komponenty. Testowanie jednostkowe oprogramowania w procesie wytwarzania oprogramowania
3. Typy generyczne - programowanie uogólnione na poziomie klas i interfejsów, wielokrotne wykorzystanie tego samego kodu, modularność oprogramowania
4. Kolekcje i mapy w Java API - właściwości, warianty kolekcji: niemodyfikowalne, synchronizowane. Strumienie w kolekcjach, przetwarzanie strumieni danych, elementy programowania funkcyjnego
5. Dziedziczenie i kwalifikatory dostępu, przeciążanie i nadpisywanie metod, polimorfizm
6. Standardowa serializacja danych. Komponenty, modele warstwowe, interfejsy jako metoda wiązania komponentów
7. Standardowe interfejsy Java API - naturalny porządek obiektów w zbiorze, równość obiektów, algorytmy hashujące w kolekcjach i mapach, sortowanie. Klasy anonimowe, wewnętrzne, lokalne. Komparator jako interfejs funkcjonalny, bepośrednie odwołania do funkcji
8. Internacjonalizacja i lokalizacja aplikacji w systemach komputerowych. Komponenty Java API dla i18n i l10n
9. Zintegrowane środowiska programistyczne do budowy aplikacji Java
10. Zaawansowane operacje plikowe i w systemie plików, buforowanie, bezpośredni dostęp do zasobów systemu operacyjnego. 11. Wyjątki Java API i własne struktury klas
12. Wzorce projektowe DI, IoC, obserwator, delegat, dekorator, interceptor na przykładzie kontenera CDI (JBoss Weld), luźnie wiązania komponentów.
ĆWICZENIA LABORATORYJNE
Wykonanie aplikacji z GUI o architekturze komponentowej rozwiązującej prosty problem informatyczny z wtkorzystaniem technik TDD:
1. Instalacja i konfiguracja narzędzi wspierających rozwój oprogramowania i weryfikujących kod pod względem standardów kodowania
2. Algorytmy iteracyjne i rekruecnyjne do rozwiązywania określonych problemów informatycznych
3. Tworzenie własnych klas i metod, obiektowy model danych, tablice
4. Klasa Object i jej metody, nadpisywanie toString(), equals(), hashCode()
5. Programowanie z wykorzystaniem bibliotecznych struktur kontenerowych. Tworzenie i wykorzystanie wariantów kolekcji i map o innych właściwościach
6. Interfejsy standardowe Serializable, Comparable, Cloneable i Comparator
7. Utrwalanie danych z wykorzystaniem serializacji standardowej i niestandardowej
8. Biblioteki zewnętrzne wspierające proces wytwarzania oprogramowania
9. Internacjonalizacja i lokalizacja aplikacji. Prawidłowe wyświetlanie i parsowanie String do dat, czasu, waluty, procentów, liczb. Formatowanie i parsowanie komunikatów znakowych
11. Obsługa i projektowanie hierarchii wyjątków
12. Implementacja GUI z wykorzystaniem wzorców projektowych i architektonicznych: mvc, adapter, listener, delegat, fabryka
13. Zastosowanie elementów programowania funkcyjnego |
Literatura podstawowa |
- Fowler M., Beck K., Brant J., Opdyke W., Roberts D.: Refactoring: Improving the Design of Existing Code, 2nd Ed. 2018
- Horstmann Cay S. , Core Java Volume I--Fundamentals, 11th Ed. 2018
- Horstmann Cay S., Core Java, Volume II--Advanced Features, 11th Ed. 2018
- Booch G., Rumbaugh J., Jacobson I.:The Unified Modeling Language User Guide, 2nd Ed., Addison Wesley, 2005
- Martin R.C.: Clean Code:A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008
- Bloch J.: Effective Java, 3rd Ed., Pearson Education, 2017
- Java Language Specification https://docs.oracle.com/javase/specs/
- Java Community Process http://jcp.org
|
Literatura uzupełniająca |
- https://gluonhq.com/products/javafx/
- http://code.makery.ch/library/javafx-8-tutorial
- http://docs.oracle.com/javase/8/javase-clienttechnologies.htm
- http://www.mkyong.com/all-tutorials-on-mkyong-com/
- https://dzone.com/refcardz/javafx-8-1
|
Bilans godzin
|
Forma zajęć |
Liczba godzin |
Wykład |
30 |
Laboratorium |
30 |
Praca w domu |
60 |
Przygotowanie do egzaminu |
20 |
SUMA : |
140 |
|
Uwagi |
|
Data aktualizacja karty |
2021-09-24 08:26:28 |