Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S1)
specjalność: Inżynieria oprogramowania

Sylabus przedmiotu Język Java:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom pierwszego stopnia
Tytuł zawodowy absolwenta inżynier
Obszary studiów nauki techniczne, studia inżynierskie
Profil ogólnoakademicki
Moduł
Przedmiot Język Java
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Systemów Multimedialnych
Nauczyciel odpowiedzialny Piotr Czapiewski <Piotr.Czapiewski@zut.edu.pl>
Inni nauczyciele Paweł Forczmański <Pawel.Forczmanski@zut.edu.pl>, Krzysztof Kraska <Krzysztof.Kraska@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 1 Grupa obieralna 2

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW3 15 1,00,50zaliczenie
laboratoriaL3 45 3,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Programowanie 2
W-2Algorytmy 1

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Zapoznanie studentów z językiem Java
C-2Przygotowanie studentów do samodzielnego tworzenia aplikacji w języku Java

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Podstawowe typy danych i zmienne; tablice; instrukcje sterujące; typy wyliczeniowe3
T-L-2Definiowanie klas, dziedziczenie i polimorfizm3
T-L-3Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne3
T-L-4Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe3
T-L-5Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków)3
T-L-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)3
T-L-7Definiowanie typów generycznych3
T-L-8Operacje wejścia/wyjścia (klasa File, obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów; różne rodzaje strumieni, klasy Reader/Writer)3
T-L-9Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne)3
T-L-10Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI)3
T-L-11Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI)3
T-L-12Programowanie współbieżne (użycie Thread, Runnable i ExecutorService; synchronizacja)3
T-L-13Wyrażenia lambda i operacje strumieniowe3
T-L-14Testy jednostkowe w Javie (jUnit, mocks)3
T-L-15Zaliczenie3
45
wykłady
T-W-1Wprowadzenie (platforma Java, maszyna wirtualna, JDK)1
T-W-2Podstawy języka Java (typy danych i zmienne; tablice; instrukcje sterujące)1
T-W-3Programowanie obiektowe (definiowanie klas, dziedziczenie i polimorfizm; obiekty i referencje; metody equals i hashcode; interfejsy i klasy abstrakcyjne; składowe statyczne; klasy wewnętrzne i anonimowe; obsługa wyjątków)3
T-W-4Typy generyczne i kolekcje (definiowanie typów generycznych; interfejsy List, Set, Map i ich podstawowe implementacje)2
T-W-5Operacje wejścia/wyjścia (klasa File; obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów)1
T-W-6Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów; StringBuilder; formatowanie łańcuchów; wyrażenia regularne)1
T-W-7Tworzenie interfejsów użytkownika (Swing i rozwiązania alternatywne, SWT, JavaFX; budowa interfejsów GUI w Swing)2
T-W-8Programowanie współbieżne (wprowadzenie do wątków, Thread, Runnable; pule wątków, mechanizm ExecutorService; podstawowe mechanizmy synchronizacji)2
T-W-9Elementy programowania funkcyjnego (wyrażenia lambda; operacje strumieniowe)1
T-W-10Testy jednostkowe w Javie (biblioteka jUnit; atrapy obiektów, mocks)1
15

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach45
A-L-2Przygotowanie do zajęć laboratoryjnych15
A-L-3Uzupełnienie ćwiczeń laboratoryjnych i wykonanie zadań domowych15
75
wykłady
A-W-1Uczestnictwo w zajęciach15
A-W-2Konsultacje dotyczące wykładów1
A-W-3Przygotowanie do zaliczenia i zaliczenie9
25

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykłady oparte na prezentacjach multimedialnych
M-2Pokazy praktyczne - demonstracje użycia narzędzi programistycznych
M-3Ćwiczenia praktyczne z użyciem komputerów

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Ocena zadań zrealizowanych w ramach danego ćwiczenia laboratoryjnego (na koniec każdych zajęć)
S-2Ocena formująca: Ocena zadań domowych i ćwiczeń uzupełniających
S-3Ocena podsumowująca: Całościowa ocena umiejętności praktycznych zdobytych w toku ćwiczeń laboratoryjnych i projektu (na bazie ocen cząstkowych 1 i 2).
S-4Ocena podsumowująca: Sprawdzenie wiedzy teoretycznej dotyczącej języka Java i platformy Java (test pisemny)

Zamierzone efekty kształcenia - wiedza

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C09.2_W01
Rozumie proces kompilacji i uruchamiania programów przez JVM. Zna konstrukcje języka Java. Zna reguły programowania obiektowego w języku Java. Zna najważniejsze elementy Java API i podstawy tworzenia aplikacji wielowątkowych.
I_1A_W02, I_1A_W04C-1, C-2T-W-8, T-W-10, T-W-1, T-W-6, T-W-5, T-W-2, T-W-7, T-W-9, T-W-4, T-W-3M-1, M-2S-4

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C09.2_U01
Potrafi samodzielnie tworzyć aplikacje w języku Java. Potrafi zaimplementować modele obiektowe (hierarchie klas, interfejsy) oraz podstawowe GUI okienkowe. Potrafi zastosować odpowiednią do sytuacji obsługę wyjątków. Potrafi wybrać i zastosować kolekcyjne struktury danych. Potrafi stosować podstawowe mechanizmy wejścia/wyjścia.
I_1A_U06, I_1A_U10, I_1A_U09C-2, C-1T-L-9, T-L-13, T-L-11, T-L-1, T-L-8, T-L-3, T-L-14, T-L-12, T-L-4, T-L-2, T-L-6, T-L-10, T-L-5, T-L-7, T-L-15M-3S-2, S-1, S-3

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium oceny
I_1A_C09.2_W01
Rozumie proces kompilacji i uruchamiania programów przez JVM. Zna konstrukcje języka Java. Zna reguły programowania obiektowego w języku Java. Zna najważniejsze elementy Java API i podstawy tworzenia aplikacji wielowątkowych.
2,0
3,0Zna podstawowe konstrukcje języka Java (strukturalne i obiektowe).
3,5Potrafi opisać mechanizmy programowania obiektowego w Javie (klasy, interfejsy, obsługa wyjątków).
4,0Potrafi opisać główne elementy Java API (w tym I/O, wyjątki, Swing GUI).
4,5Potrafi opisać mechanizmy synchronizacji w aplikacjach wielowątkowych. Potrafi omówić stosowanie API strumieniowych i wyrażeń lambda.
5,0Potrafi omówić wady i zalety stosowania wybranych mechanizmów (np. poszczególnych klas Java API, kolekcji, podejścia do obsługi błędów, tworzenie testów jednostkowych). Rozumie mechanizmy zarządzania pamięcią JVM.

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_C09.2_U01
Potrafi samodzielnie tworzyć aplikacje w języku Java. Potrafi zaimplementować modele obiektowe (hierarchie klas, interfejsy) oraz podstawowe GUI okienkowe. Potrafi zastosować odpowiednią do sytuacji obsługę wyjątków. Potrafi wybrać i zastosować kolekcyjne struktury danych. Potrafi stosować podstawowe mechanizmy wejścia/wyjścia.
2,0
3,0Potrafi samodzielnie zaimplementować proste aplikacje w języku Java.
3,5Potrafi samodzielnie zaimplementować aplikacje obiektowe, odpowiednio stosując klasy, interfejsy i obsługę wyjątków.
4,0Potrafi zaimplementować złożoną aplikację, korzystającą z najważniejszych elementów Java API (w tym I/O, wyjątki, Swing GUI).
4,5Potrafi zaimplementować aplikację wielowątkową oraz zastosować API strumieniowe i wyrażenia lambda.
5,0Potrafi samodzielnie wybrać optymalne podejście do implementacji oraz zamodelować hierarchię klas.

Literatura podstawowa

  1. Cay S. Horstmann, Java. Podstawy. Wydanie X, Helion, 2016
  2. Kathy Sierra, Bert Bates, Java. Rusz głową! Wydanie II, Helion, 2010

Literatura dodatkowa

  1. Cay S. Horstmann, Java. Techniki zaawansowane. Wydanie X, Helion, 2017
  2. Joshua Bloch, Effective Java (3rd Edition), Addison-Wesley Professional, 2018
  3. Radosław Sokół, Testowanie aplikacji Java za pomocą JUnit, Helion, 2018
  4. Kent Beck, TDD. Sztuka tworzenia dobrego kodu, Helion, 2014

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Podstawowe typy danych i zmienne; tablice; instrukcje sterujące; typy wyliczeniowe3
T-L-2Definiowanie klas, dziedziczenie i polimorfizm3
T-L-3Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne3
T-L-4Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe3
T-L-5Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków)3
T-L-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)3
T-L-7Definiowanie typów generycznych3
T-L-8Operacje wejścia/wyjścia (klasa File, obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów; różne rodzaje strumieni, klasy Reader/Writer)3
T-L-9Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne)3
T-L-10Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI)3
T-L-11Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI)3
T-L-12Programowanie współbieżne (użycie Thread, Runnable i ExecutorService; synchronizacja)3
T-L-13Wyrażenia lambda i operacje strumieniowe3
T-L-14Testy jednostkowe w Javie (jUnit, mocks)3
T-L-15Zaliczenie3
45

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Wprowadzenie (platforma Java, maszyna wirtualna, JDK)1
T-W-2Podstawy języka Java (typy danych i zmienne; tablice; instrukcje sterujące)1
T-W-3Programowanie obiektowe (definiowanie klas, dziedziczenie i polimorfizm; obiekty i referencje; metody equals i hashcode; interfejsy i klasy abstrakcyjne; składowe statyczne; klasy wewnętrzne i anonimowe; obsługa wyjątków)3
T-W-4Typy generyczne i kolekcje (definiowanie typów generycznych; interfejsy List, Set, Map i ich podstawowe implementacje)2
T-W-5Operacje wejścia/wyjścia (klasa File; obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów)1
T-W-6Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów; StringBuilder; formatowanie łańcuchów; wyrażenia regularne)1
T-W-7Tworzenie interfejsów użytkownika (Swing i rozwiązania alternatywne, SWT, JavaFX; budowa interfejsów GUI w Swing)2
T-W-8Programowanie współbieżne (wprowadzenie do wątków, Thread, Runnable; pule wątków, mechanizm ExecutorService; podstawowe mechanizmy synchronizacji)2
T-W-9Elementy programowania funkcyjnego (wyrażenia lambda; operacje strumieniowe)1
T-W-10Testy jednostkowe w Javie (biblioteka jUnit; atrapy obiektów, mocks)1
15

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach45
A-L-2Przygotowanie do zajęć laboratoryjnych15
A-L-3Uzupełnienie ćwiczeń laboratoryjnych i wykonanie zadań domowych15
75
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w zajęciach15
A-W-2Konsultacje dotyczące wykładów1
A-W-3Przygotowanie do zaliczenia i zaliczenie9
25
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C09.2_W01Rozumie proces kompilacji i uruchamiania programów przez JVM. Zna konstrukcje języka Java. Zna reguły programowania obiektowego w języku Java. Zna najważniejsze elementy Java API i podstawy tworzenia aplikacji wielowątkowych.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W02Posiada wiedzę w zakresie projektowania, analizy i implementacji algorytmów, struktur danych oraz konstrukcji programistycznych, zna podstawowe problemy algorytmiczne występujące w obszarze informatyki.
I_1A_W04Ma wiedzę w zakresie programowania systemów komputerowych, zna podstawowe paradygmaty programowania i wiodące języki programowania.
Cel przedmiotuC-1Zapoznanie studentów z językiem Java
C-2Przygotowanie studentów do samodzielnego tworzenia aplikacji w języku Java
Treści programoweT-W-8Programowanie współbieżne (wprowadzenie do wątków, Thread, Runnable; pule wątków, mechanizm ExecutorService; podstawowe mechanizmy synchronizacji)
T-W-10Testy jednostkowe w Javie (biblioteka jUnit; atrapy obiektów, mocks)
T-W-1Wprowadzenie (platforma Java, maszyna wirtualna, JDK)
T-W-6Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów; StringBuilder; formatowanie łańcuchów; wyrażenia regularne)
T-W-5Operacje wejścia/wyjścia (klasa File; obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów)
T-W-2Podstawy języka Java (typy danych i zmienne; tablice; instrukcje sterujące)
T-W-7Tworzenie interfejsów użytkownika (Swing i rozwiązania alternatywne, SWT, JavaFX; budowa interfejsów GUI w Swing)
T-W-9Elementy programowania funkcyjnego (wyrażenia lambda; operacje strumieniowe)
T-W-4Typy generyczne i kolekcje (definiowanie typów generycznych; interfejsy List, Set, Map i ich podstawowe implementacje)
T-W-3Programowanie obiektowe (definiowanie klas, dziedziczenie i polimorfizm; obiekty i referencje; metody equals i hashcode; interfejsy i klasy abstrakcyjne; składowe statyczne; klasy wewnętrzne i anonimowe; obsługa wyjątków)
Metody nauczaniaM-1Wykłady oparte na prezentacjach multimedialnych
M-2Pokazy praktyczne - demonstracje użycia narzędzi programistycznych
Sposób ocenyS-4Ocena podsumowująca: Sprawdzenie wiedzy teoretycznej dotyczącej języka Java i platformy Java (test pisemny)
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Zna podstawowe konstrukcje języka Java (strukturalne i obiektowe).
3,5Potrafi opisać mechanizmy programowania obiektowego w Javie (klasy, interfejsy, obsługa wyjątków).
4,0Potrafi opisać główne elementy Java API (w tym I/O, wyjątki, Swing GUI).
4,5Potrafi opisać mechanizmy synchronizacji w aplikacjach wielowątkowych. Potrafi omówić stosowanie API strumieniowych i wyrażeń lambda.
5,0Potrafi omówić wady i zalety stosowania wybranych mechanizmów (np. poszczególnych klas Java API, kolekcji, podejścia do obsługi błędów, tworzenie testów jednostkowych). Rozumie mechanizmy zarządzania pamięcią JVM.
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C09.2_U01Potrafi samodzielnie tworzyć aplikacje w języku Java. Potrafi zaimplementować modele obiektowe (hierarchie klas, interfejsy) oraz podstawowe GUI okienkowe. Potrafi zastosować odpowiednią do sytuacji obsługę wyjątków. Potrafi wybrać i zastosować kolekcyjne struktury danych. Potrafi stosować podstawowe mechanizmy wejścia/wyjścia.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U06Potrafi rozwiązywać podstawowe problemy algorytmiczne z uwzględnieniem ich złożoności posługując się kluczowymi językami programowania.
I_1A_U10Potrafi projektować i implementować systemy informatyczne posługując się narzędziami wspomagającymi proces wytwarzania oprogramowania na różnych jego etapach.
I_1A_U09Potrafi analizować i oceniać przydatność języków, platform programistycznych i narzędzi informatycznych do rozwiązywania wybranych problemów inżynierskich w dziedzinie informatyki.
Cel przedmiotuC-2Przygotowanie studentów do samodzielnego tworzenia aplikacji w języku Java
C-1Zapoznanie studentów z językiem Java
Treści programoweT-L-9Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne)
T-L-13Wyrażenia lambda i operacje strumieniowe
T-L-11Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI)
T-L-1Podstawowe typy danych i zmienne; tablice; instrukcje sterujące; typy wyliczeniowe
T-L-8Operacje wejścia/wyjścia (klasa File, obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów; różne rodzaje strumieni, klasy Reader/Writer)
T-L-3Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne
T-L-14Testy jednostkowe w Javie (jUnit, mocks)
T-L-12Programowanie współbieżne (użycie Thread, Runnable i ExecutorService; synchronizacja)
T-L-4Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe
T-L-2Definiowanie klas, dziedziczenie i polimorfizm
T-L-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)
T-L-10Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI)
T-L-5Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków)
T-L-7Definiowanie typów generycznych
T-L-15Zaliczenie
Metody nauczaniaM-3Ćwiczenia praktyczne z użyciem komputerów
Sposób ocenyS-2Ocena formująca: Ocena zadań domowych i ćwiczeń uzupełniających
S-1Ocena formująca: Ocena zadań zrealizowanych w ramach danego ćwiczenia laboratoryjnego (na koniec każdych zajęć)
S-3Ocena podsumowująca: Całościowa ocena umiejętności praktycznych zdobytych w toku ćwiczeń laboratoryjnych i projektu (na bazie ocen cząstkowych 1 i 2).
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Potrafi samodzielnie zaimplementować proste aplikacje w języku Java.
3,5Potrafi samodzielnie zaimplementować aplikacje obiektowe, odpowiednio stosując klasy, interfejsy i obsługę wyjątków.
4,0Potrafi zaimplementować złożoną aplikację, korzystającą z najważniejszych elementów Java API (w tym I/O, wyjątki, Swing GUI).
4,5Potrafi zaimplementować aplikację wielowątkową oraz zastosować API strumieniowe i wyrażenia lambda.
5,0Potrafi samodzielnie wybrać optymalne podejście do implementacji oraz zamodelować hierarchię klas.