Paweł Rzechonek

Zainteresowania zawodowe: programowanie (C++, Java, C#, F#), technologie webowe, szeroko rozumiana algorytmika, metematyka klasyczna.

Java
technologie zaawansowane

data ostatniej modyfikacji dokumentu

Data ostatniej modyfikacji tego dokumentu (java2019.phtml) to piątek 31 maja 2019 roku (o godzinie 10:15).

ogłoszenia
4 kwietnia 2019 r.
wykład 5 kwietnia 2019:
Wykład o adresach sieciowych zaplanowany na piątek 5 kwietnia rozpocznie się o 9:15. Zapraszam.

8 marca 2019 r.
następny wykład o XML:
Najbliższy wykład w piątek 15 marca o 8:30 dotyczący przetwarzania plików XML w Javie poprowadzi student Tomasz Siemieniuk. Zapraszam.

21 lutego 2019 r.
odwołane zajęcia:
Wykładowca jest na zwolnieniu lekarskim do 26 lutego. Z tego powodu zostały odwołane wszystkie zajęcia z tego przedmiotu w pierwszym tygodniu semestru.

21 lutego 2019 r.
punkt informacyjny:
W tym miejscu będą się pojawiać ważne ogłoszenia dotyczące organizacji wszystkich zajęć związanych z tym przedmiotem. Proszę czytać te ogłosznia na bieżąco.
terminarz
wykład:
piątek 8-10 s.139 (Paweł Rzechonek)

laboratoria:
czwartek 16-18 s.107 (Paweł Rzechonek)
licznik wejść na stronę

1 dzisiaj
6 w obecnym miesiącu
106 w bieżącym roku
849 od powstania strony

o przedmiocie

Java - technologie zaawansowane

Java to współczesny obiektowy język programowania stworzony przez Jamesa Goslinga z firmy Sun Microsystems. Od momentu powstania w połowie lat 90-tych XX wieku przeżył on dynamiczny rozwój a zainteresowanie nim nie maleje. Język Java przyciągnął do dziś wiele milionów programistów. Znajduje zastosowanie w każdej ważniejszej gałęzi przemysłu informatycznego i jest obecny w różnego rodzaju urządzeniach, komputerach i sieciach. Popularność Javy wynika przede wszystkim z przenośności programów i niezależności od konkretnej platwormy sprzętowej, a co za tym idzie, ma zastosowanie w Internecie oraz ogólnie w aplikacjach sieciowych. Jego podstawowe koncepcje zostały przejęte z języka Smalltalk (maszyna wirtualna, odśmiecanie pamięci) oraz z języka C++ (znaczna część składni i słów kluczowych).

Zajęcia te to kontynuacja kursu Javy z poprzedniego semestru. Celem tych zajęć jest poznanie najpopularniejszych obecnie technologii używanych przez zawodowych programistów Javy.

Wymagane przygotowanie
  •   Umiejętność programowania obiektowego w Javie.
  •   Podstawowa znajomość algorytmiki.
  •   Umiejętność czytania dokumentacji technicznej w języku angielskim.
Cel kursu
  •   Poznanie różnorodnych technik stosowanych w progamowaniu w Javie.
  •   Praktyczne zastosowanie najważniejszych technologii Javowych.
  •   Poznanie obszernych fragmentów pakietów standardowych Javy.

literatura

Literatura podstawowa
  •   Cay S. Horstmann: Java 9. Przewodnik doświadczonego programisty. Wydanie 2. Wydawnictwo HELION, Gliwice 2018.
  •   Cay S. Horstmann: Java. Podstawy. Wydanie 10. Wydawnictwo HELION, Gliwice 2016.
  •   Cay S. Horstmann: Java. Techniki zaawansowane. Wydanie 10. Wydawnictwo HELION, Gliwice 2017.
  •   Herbert Schildt: Java. Przewodnik dla początkujących. Wydanie 7. Wydawnictwo HELION, Gliwice 2018.
  •   Herbert Schildt: Java. Kompendium programisty. Wydanie 10. Wydawnictwo HELION, Gliwice 2018.
Literatura uzupełniająca
  •   Krzysztof Barteczko: Java. Od podstaw do technologii. Tom 1 i 2. Wydawnictwo MIKOM, Warszawa 2004.
  •   Elliotte Rusty Harold: Java. Programowanie sieciowe. Wydawnictwo RM, Warszawa 2001.
  •   Michał Grochala: Java. Aplikacje bazodanowe. Wydanie 2. Wydawnictwo HELION, Gliwice 2001.
  •   Christian Bauer, Gavin King, Gary Gregory: Java Persistence. Programowanie aplikacji bazodanowych w Hibernate. Wydanie 2. Wydawnictwo HELION, Gliwice 2016.
  •   Gary Mak, Daniel Rubio, Josh Long: Spring. Receptury. Wydawnictwo HELION, Gliwice 2014.
Literatura elektroniczna

laboratorium

Zasady zaliczenia przedmiotu
Ogólnie:
W semestrze będzie opublikowanych (na tej stronie) kilkanaście prostych zadań do zaprogramowania. Za każde samodzielnie zaprogramowane zadanie i oddane w terminie można będzie dostać do 10 punktów (chociaż zadania będą różnej trudności).
Terminy:
Zadania do zaprogramowania będą ogłaszane w tygodniu poprzedzającym termin ich realizacji. Zadania należy oddawać w wyznaczonym terminie. Spóźnienia nie będą tolerowane, za wyjątkiem uzasadnionych sytuacji życiowych: choroba potwierdzona zwolnieniem lekarskim, wezwanie do Sądu, itp.
Prezentacje:
Programy należy prezentować osobiście w czasie pracowni (proszę nie wysyłać programów pocztą elektroniczną, ani nie przekazywać ich poprzez innych studentów). W trakcie prezentacji programu trzeba się liczyć z pytamiami dotyczącymi zadania: metoda rozwiązania, zastosowane konstrukcje językowe, wykorzystane technologie, itp.
Rozwiązania:
Kody źródłowe własnych programów należy zapisywać na SKOS, ponieważ tylko wtedy rozwiązania zadań będą podlegały weryfikacji autorskiej i ocenie.
Oceny:
Aby zaliczyć laboratorium na ocenę dostateczną trzeba do końca semestru zdobyć 50% z wszystkich możliwych do uzyskania punktów; na ocenę bardzo dobrą trzeba będzie zgromadzić 90% punktów; oceny pośrednie pozostją w liniowej zależności od przedstawionych wymagań granicznych.
Zadania laboratoryjne
  1. kalkulator binarny
  2. biegające liczby
  3. budżet domowy
  4. testowanie pierwszości liczb naturalnych
  5. śledzenie linków w dokumentach hipertekstowych
  6. aplikacje klient-serwer na TCP
  7. aplikacje klient-serwer na UDP
  8. nowoczesny stragan
  9. liczby Lucasa
Ranking

wykłady

1 marca 2019 r: JavaFX

organizacja zajęć: java0.pdf

  • ...

slajdy: java1.pdf

8 marca 2019 r: JavaBeans

  • ...

slajdy: java2.pdf

15 marca 2019 r: XML (T.Siemieniuk)

  • XML
  • DTD

slajdy: XML.pdf

22 marca 2019 r: Internationalization

  • ...

slajdy: java3.pdf

29 marca 2019 r: RMI

materiały elektroniczne:

slajdy: java4.pdf

5 kwietnia 2019 r: URL

materiały elektroniczne:

slajdy: java5.pdf

12 kwietnia 2019 r: Networking

materiały elektroniczne:

slajdy: java6.pdf

10 maja 2019 r: JDBC

materiały elektroniczne:

slajdy: java7.pdf

17 maja 2019 r: Hibernate

materiały elektroniczne:

24 maja 2019 r: servlety i JSP

31 maja 2019 r: Docker