Programowanie Java 2
1000-I1ProgJava2
Główny nacisk zajęć będzie położony na tworzenie bezpiecznych aplikacji webowych ze strony serwerowej (backend), przy użyciu technologii: Spring Framework, Spring Secure, REST API, JPA wraz z różnego typu testami.
Omawiane tematy:
- przypomnienie informacji na temat języka JAVA
- podstawy działania Spring Framework
- wsparcie dla różnych języków (np. język polski, angielski)
- silnik szablonów (Thymeleaf) - możliwe jest również tworzenie strony klienta (frontend) przy użyciu innych narzędzi (np. React), ale zajęcia tego nie obejmują
- Spring DATA JPA (w tym: zapis dat i czasu, relacje One/Many to One/Many, stronicowanie, sortowanie, własne zapytania)
- walidacja przy użyciu Bean Validation
- obsługa wyjątków przy użyciu ControllerAdvice
- aplikacje Remote Procedure Call i RESTful
- użycie biblioteki HATEOAS
- testy jednostkowe (JUnit), mockowanie, testy przy użyciu mechanizmów Springa: MockMvc, DataJpaTest, WebTestClient
- Spring Security: konfiguracja, korzystanie z bazy danych do przechowywania informacji użytkowników, rejestracja z potwierdzeniem mailowym.
Całkowity nakład pracy studenta
15 godz. – wykład
1 godz. - egzamin
45 godz. - ćwiczenia
50 godz. - praca własna - bieżące przygotowanie do zajęć, studiowanie literatury, przygotowywanie prac domowych,
45 godz. praca własna - przygotowanie do egzaminu.
Razem 156 godzin
6 ptk ECTS
Efekty uczenia się - wiedza
- ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie programowania, technologii sieciowych, języków programowania, baz danych (K_W02)
- zna bardziej zaawansowane konstrukcje programistyczne (K_W03)
- zna najważniejsze struktury danych i wykonywane na nich operacje (K_W05)
- ma wiedzę na temat inżynierii oprogramowania, w tym projektowania (wzorce projektowe, architektura oprogramowania, analiza i projektowanie obiektowe) (K_W11)
- ma wiedzę na temat technologii sieciowych, w tym bezpieczeństwa i budowy aplikacji sieciowych (K_W12)
Efekty uczenia się - umiejętności
- potrafi pracować indywidualnie, potrafi zarządzać swoim czasem oraz podejmować zobowiązania i dotrzymywać terminów (K_U03)
- potrafi pisać, uruchamiać i testować programy w wybranym środowisku programistycznym (K_U05)
- projektuje, analizuje pod kątem poprawności i złożoności obliczeniowej oraz programuje algorytmy; wykorzystuje podstawowe techniki algorytmiczne i struktur danych (K_U07)
- posługuje się przyjętymi formatami reprezentacji różnego rodzaju danych stosownie do sytuacji (liczby, tablice, tekst, obrazy, dźwięk i filmy) (K_U08)
- potrafi dbać o bezpieczeństwo danych, w tym o ich bezpieczne przesyłanie; posługuje się narzędziami kompresji i szyfrowania danych (K_U13)
- posiada umiejętność tworzenia bezpiecznych aplikacji internetowych z wykorzystaniem baz danych (K_U14)
- potrafi zaprojektować wygodny interfejs użytkownika ze szczególnym uwzględnieniem aplikacji internetowych (K_U15)
- potrafi formułować zapytania do bazy danych w wybranym języku zapytań (K_U19)
- projektuje oprogramowanie zgodnie z metodyką obiektową (K_U22)
Efekty uczenia się - kompetencje społeczne
- myśli twórczo w celu udoskonalenia istniejących bądź stworzenia nowych rozwiązań (K_K02)
- jest nastawiony na jak najlepsze wykonanie zadania; dba o szczegół; jest systematyczny (K_K04)
- jest nastawiony na nieustanne zdobywanie nowej wiedzy, umiejętności i doświadczeń; rozumie potrzebę ciągłego doskonalenia się i podnoszenia kompetencji zawodowych (K_K06)
Metody dydaktyczne
1) Wykład z prezentacją
2) Przykłady rozwiązań zadań
3) Zadania samodzielne
4) Przygotowanie projektu programistycznego
Wymagania wstępne
- Podstawowa wiedza na temat programowania w języku JAVA (ukończenie przedmiotu Programowanie III JAVA)
- Alternatywnie: umiejętność programowania w innym, obiektowym języku programowania, zbliżonym do języka JAVA, np. C#
Koordynatorzy przedmiotu
Kryteria oceniania
Zaliczenie przedmiotu odbywa się poprzez przygotowanie projektu programistycznego (indywidualnie lub w grupach dwuosobowych). Projekt jest następnie prezentowany podczas egzaminu w formie ustnej.
Literatura
https://spring.io/guides
Spring w akcji, Craig Walls, Wydawnictwo: Helio
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i
terminach zajęć) mogą być dostępne w serwisie USOSweb: