Uniwersytet Warszawski - Centralny System Uwierzytelniania
Strona główna

Zaawansowana Java

Informacje ogólne

Kod przedmiotu: 1000-2M22ZJ
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Zaawansowana Java
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obieralne dla informatyki
Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.

zobacz reguły punktacji
Język prowadzenia: (brak danych)
Rodzaj przedmiotu:

monograficzne

Skrócony opis:

Celem tego przedmiotu jest zapoznanie studentów z zaawansowanymi aspektami języka Java oraz ich praktyczne użycie w rozbudowanym projekcie programistycznym.

Pełny opis:

Celem tego przedmiotu jest zapoznanie studentów z zaawansowanymi aspektami języka Java (refleksja, anotacje, classloadery, dynamic proxy) oraz ich praktyczne użycie w bibliotekach i frameworkach.

W ramach wykładu zapoznamy się z budową kontenera servletów i postaramy się go zaimplementować w kilkuosobowych zespołach. Następnie przetestujemy go wydajnościowo, postaramy się ustalić wąskie gardła (bottleneck) naszego rozwiązania i poprawić jego wydajność (performance tuning). Nie będziemy używać gotowych rozwiązań i bibliotek, tylko wzorując się na istniejących implementować własne w Java SE.

Podobnie dla specyfikacji jax-rs i jpa – zaimplementujemy uproszczoną wersję biblioteki wspierającej tworzenie serwisów restowych oraz oraz rozwiązania wpierającego mapowanie obiektowo relacyjne (ORM).

Wszystko to z wykorzystaniem git, testów jednostkowych, integracyjnych i CI/CD.

W części laboratoryjnej sprawdzimy jak sztuczna inteligencja oparta na sieci neuronowej lub algorytmie genetycznym daje sobie radę w walce na https://www.codingame.com/multiplayer/bot-programming z programami opartymi na heurystykach, Minimaxie lub metodzie Monte Carlo.

Literatura:

JSR 340: Java Servlet 3.1 Specification

JSR-000370 Java API for RESTful Web Services 2.1 Specification Final Release

JSR 338: JavaTM Persistence 2.2

Efekty uczenia się:

Wiedza:

* Zna szczegółowo wybrane narzędzie lub język programowania [K_W02, K_W09, K_W10].

Umiejętności:

* Umie pozyskiwać informacje z literatury, baz wiedzy, Internetu oraz innych wiarygodnych źródeł, integrować je, dokonywać ich interpretacji oraz wyciągać wnioski i formułować opinie (K_U02)

* Umie samodzielnie planować i realizować własne uczenie się przez całe życie (K_U09).

* Umie ocenić, na podstawowym poziomie, przydatność rutynowych metod i narzędzi informatycznych oraz wybrać i zastosować właściwą metodę i narzędzia do typowych zadań informatycznych (K_U18).

* Umie planować i organizować pracę indywidualnie i w zespole, także o charakterze interdyscyplinarnym; zarządzać swoim czasem oraz podejmować zobowiązania i dotrzymywać terminów (K_U29).

Kompetencje społeczne:

* Student jest gotów do krytycznej oceny posiadanej wiedzy i odbieranych treści (K_K01).

* Student jest gotów do pracy z zachowaniem uczciwości intelektualnej w działaniach własnych i innych osób; przestrzegania zasad etyki zawodowej i wymagania tego od innych oraz dbałości o dorobek i tradycje zawodu informatyka (K_K02).

* Student jest gotów do uznawania znaczenia wiedzy w rozwiązywaniu problemów poznawczych i praktycznych oraz wyszukiwania informacji w literaturze oraz zasięgania opinii ekspertów (K_K03).

Metody i kryteria oceniania:

Zaliczenie wykładu:

poprzez zespołowe napisanie serwera webowego zbliżonego do kontenera servletów, biblioteki wspierającej tworzenie serwisów restowych oraz biblioteki wspierającej mapowanie obiektowo relacyjne.

Zaliczenie laboratorium:

poprzez napisanie kilku małych programów (5-6) grających na https://www.codingame.com/multiplayer/bot-programming

Zajęcia w cyklu "Semestr zimowy 2023/24" (zakończony)

Okres: 2023-10-01 - 2024-01-28
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Jakub Sitek
Prowadzący grup: Jakub Sitek
Lista studentów: (nie masz dostępu)
Zaliczenie: Przedmiot - Zaliczenie na ocenę
Wykład - Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.
ul. Banacha 2
02-097 Warszawa
tel: +48 22 55 44 214 https://www.mimuw.edu.pl/
kontakt deklaracja dostępności USOSweb 7.0.3.0-2b06adb1e (2024-03-27)