Paweł Rzechonek

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

programowanie w języku
Java

data ostatniej modyfikacji

Data ostatniej modyfikacji dokumentu (java.phtml) to czwartek 10 października 2024 roku (o godzinie 20:56).

ogłoszenia
3 października 2023 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ę sprawdzać te ogłosznia na bieżąco.
terminarz
wykład:
czwartek, godz.16-18, s.119 (Paweł Rzechonek)

laboratoria:
środa, godz.14-16, s.108 (Karol Pokorski)
czwartek, godz.18-20, s.7 (Paweł Rzechonek)
licznik wejść na stronę

2 dzisiaj
36 w obecnym miesiącu
36 w bieżącym roku
36 od powstania strony

o przedmiocie

Kurs języka programowania Java

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).

Celem tych zajęć jest nauka programowania obiektowego w języku Java oraz zapoznanie z najważniejszymi pakietami z biblioteki standardowej i podstawowymi technologiami programistycznymi Javy.

Wymagane przygotowanie
  • Umiejętność programowania w języku C/C++ (podstawowe konstrukcje językowe i obiekty na elementarnym poziomie).
  • Znajomość podstawowych struktur danych (tablice, listy, drzewa, grafy).
  • Umiejętność czytania anglojęzycznej dokumentacji.

literatura

Podrędznik podstawowy
  • Cay S. Horstmann: Java. Podstawy. Wydanie 10. Wydawnictwo HELION, Gliwice 2016.
Dodatkowa literatura polskojęzyczna
  • Cay S. Horstmann: Java 9. Przewodnik doświadczonego programisty. Wydanie 2. Wydawnictwo HELION, Gliwice 2018.
  • Herbert Schildt: Java. Przewodnik dla początkujących. Wydanie 7. Wydawnictwo HELION, Gliwice 2018.
  • Bruce Eckel: Thinking in Java. Wydanie 4. Edycja polska. Wydawnictwo HELION, Gliwice 2006.
  • Krzysztof Barteczko: Java. Od podstaw do technologii. Tom 1 i 2. Wydawnictwo MIKOM, Warszawa 2004.
  • Ken Arnold, James Gosling: Java. WNT, Warszawa 1999.
Dodatkowa literatura anglojęzyczna
Zasoby softwarowe
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 poprawnie 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 w trakcie trwania pracowni. 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 - z każdym studentem chciałbym indywidualnie omówić jego rozwiązanie oraz wskazać wady i braki w programie. Po pracowni program należy mi przekazać (będę jeszcze robić weryfikację antyplagiatową) na SKOS. 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. Jeśli student nie mógł uczestniczyć w zajęciach z powodu awarii połączenia internetowego, to oprócz programu ma przekazać sprawozdanie z realizacji zadania (co zostało zaprogramowane i w którym miejścu w pliku źródłowym oraz czego nie udało się osiągnąć).
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. liczby w postaci słownej
  2. rozkład liczby na czynniki pierwsze
SKOS i ranking
  • SKOS - (system komunikacji na odległość ze studentami) w IInf UWr

wykład

Spis wykładów
  1. koncepcja Javy, podstawy programowania w Javie
  2. pakiety, klasy i obiekty, abstrakcja i hermetyzacja
  3. dziedziczenie i polimorfizm
Materiał omawiany na wykładach
3 października 2024 r: koncepcja Javy, podstawy programowania w Javie

Koncepcja Javy:
  • historia Javy;
  • wirtualna maszyna Javy;
  • podstawowe cechy Javy (podobieństwo składniowe do C++, obiektowość, kontrola typów, odśmiecanie, współbieżność);
  • biblioteki standardowe Javy i ich dokumentacja;
  • technologie Javy;
  • środowisko programistyczne IntelliJ IDEA.
Składnia języka Java:
  • pierwszy program w Javie;
  • kompilowanie programów - javac;
  • uruchamianie programów - java;
  • typy pierwotne i referencyjne;
  • literały, zmienne, stałe;
  • operatory i wyrażenia;
  • komentarze w programie;
  • instrukcje sterujące wykonaniem programu;
  • tworzenie obiektów (operator new) i ich usuwanie (garbage-collector);
  • klasy opakowujące dla typów pierwotnych;
  • napisy (klasa String) i konkatenacja napisów;
  • standardowe wejście/wyjście;
  • tablice, tablice wielowymiarowe;
  • przeglądanie tablic za pomocą pętli for-each;
  • parametry wywołania programu.
Kursy, artykuły:
Przykładowe programy:
10 października 2024 r: pakiety, klasy i obiekty, abstrakcja i hermetyzacja

Pakiety:
  • definiowanie własnych pakietów;
  • pakiet jako struktura otwarta;
  • importowanie całych pakietów, pojedynczych klas z pakietu i składowych statycznych z wybranej klasy;
  • parametr -classpath przy kompilacji i przy uruchamianiu programów;
  • pakowanie klas do archiwum - jar;
  • pakiety standardowe.
Klasy i obiekty:
  • abstrakcja - I filar programowania obiektowego;
  • klasa jako nowy typ danych;
  • definicjowanie włanych klas;
  • składowe klasy: pola i metody;
  • pola definiują stan obiektu;
  • inicjalizacja pól instancyjnych, instancyjny blok inicjalizacyjny;
  • konstruktory, konstruktor domyślny;
  • wywołanie konstruktora wewnątrz innego konstruktora (konstrukcja this);
  • referencja this;
  • utworzenie nowego obiektu operatorem new;
  • metody definiują funkcjonalność obiektu;
  • przekazywanie argumentów do metod;
  • metody ze zmienną liczbą argumentów;
  • przeciążanie nazw konstruktorów i metod;
  • hermetyzacja - II filar programowania obiektowego;
  • ukrywanie implementacji i kontrola dostępu do składowych (deklaratory public, protected, private oraz widoczność pakietowa);
  • pola finalne (deklarator final) i ich inicjalizacja;
  • składowe statyczne (deklarator static);
  • inicjalizacja pól statycznych, statyczny blok inicjalizacyjny;
  • ograniczenia metod staycznych.
Kursy, artykuły:
Przykładowy program:
17 października 2024 r: dziedziczenie i polimorfizm