Programming in Java 2
1000-I1ProgJava2
The main emphasis will be on creating secure web applications from the server side (backend), using the following technologies: Spring Framework, Spring Secure, REST API, JPA together with various types of tests.
Topics covered:
- summary of JAVA language
- basics of Spring Framework
- support for various languages (e.g. Polish, English)
- template engine (Thymeleaf) - it is also possible to create a client side (frontend) using other tools (e.g. React), but the classes do not cover this
- Spring DATA JPA (including: date and time storing, One/Many to One/Many relations, paging, sorting)
- validation using Bean Validation
- exception handling using ControllerAdvice
- Remote Procedure Call and RESTful applications
- use of the HATEOAS library
- unit tests (JUnit), mocking, tests using Spring mechanisms: MockMvc, DataJpaTest, WebTestClient
- Spring Security: configuration, using the database to store user information, registration with email confirmation.
Total student workload
15 hours - lecture
1 hour - exam
45 hours - classes
50 hours - own work - ongoing preparation for classes, studying literature, preparing homework,
45 hours own work - preparation for the exam.
Total 156 hours
6 ECTS points
Learning outcomes - knowledge
(in Polish) - 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)
Learning outcomes - skills
(in Polish) - 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)
Learning outcomes - social competencies
(in Polish) - 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)
Teaching methods
1) Lecture with presentation
2) Examples of task solutions
3) Independent tasks
4) Programming project.
Prerequisites
- Basic knowledge of programming in JAVA (completion of the course Programming III JAVA)
- Alternatively: ability to program in another object-oriented programming language, similar to JAVA, e.g. C#
Course coordinators
Assessment criteria
The course is passed by preparing a programming project (individually or in groups of two). The project is then presented orally during the exam.
Bibliography
https://spring.io/guides
Spring w akcji, Craig Walls, Wydawnictwo: Helion
Additional information
Additional information (registration calendar, class conductors,
localization and schedules of classes), might be available in the USOSweb system: