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 charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Język Java
Specjalność przedmiot wspólny
Jednostka prowadząca Katedra Inżynierii Oprogramowania i Cyberbezpieczeństwa
Nauczyciel odpowiedzialny Dariusz Burak <Dariusz.Burak@zut.edu.pl>
Inni nauczyciele
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny 2 Grupa obieralna 2

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW3 15 2,00,50zaliczenie
laboratoriaL3 30 2,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 wyliczeniowe2
T-L-2Definiowanie klas, dziedziczenie i polimorfizm2
T-L-3Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne2
T-L-4Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe2
T-L-5Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków)2
T-L-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)2
T-L-7Definiowanie typów generycznych2
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)2
T-L-9Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne)2
T-L-10Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI)2
T-L-11Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI)2
T-L-12Programowanie współbieżne (użycie Thread, Runnable i ExecutorService; synchronizacja)2
T-L-13Wyrażenia lambda i operacje strumieniowe2
T-L-14Testy jednostkowe w Javie (jUnit, mocks)2
T-L-15Zaliczenie2
30
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ęciach30
A-L-2Praca własna20
50
wykłady
A-W-1Uczestnictwo w zajęciach15
A-W-2Konsultacje dotyczące wykładów2
A-W-3Praca własna33
50

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 uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
Itest_1A_C11.1_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_W05, I_1A_W02C-1, C-2T-W-5, T-W-1, T-W-2, T-W-7, T-W-3, T-W-4, T-W-6, T-W-8, T-W-9, T-W-10M-1, M-2S-4

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
Itest_1A_C11.1_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_U04, I_1A_U06, I_1A_U07C-1, C-2T-L-6, T-L-7, T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-8, T-L-9, T-L-10, T-L-11, T-L-12, T-L-13, T-L-14, T-L-15M-3S-1, S-2, S-3

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
Itest_1A_C11.1_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 uczenia sięOcenaKryterium oceny
Itest_1A_C11.1_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 wyliczeniowe2
T-L-2Definiowanie klas, dziedziczenie i polimorfizm2
T-L-3Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne2
T-L-4Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe2
T-L-5Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków)2
T-L-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)2
T-L-7Definiowanie typów generycznych2
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)2
T-L-9Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne)2
T-L-10Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI)2
T-L-11Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI)2
T-L-12Programowanie współbieżne (użycie Thread, Runnable i ExecutorService; synchronizacja)2
T-L-13Wyrażenia lambda i operacje strumieniowe2
T-L-14Testy jednostkowe w Javie (jUnit, mocks)2
T-L-15Zaliczenie2
30

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ęciach30
A-L-2Praca własna20
50
(*) 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ów2
A-W-3Praca własna33
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięItest_1A_C11.1_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_W05Ma wiedzę o nowoczesnych metodach projektowania, analizowania, wytwarzania, testowania oprogramowania oraz rozwiązywania wybranych zadań inżynierskich obejmujących w szczególności narzędzia wspomagające wytwarzanie oprogramowania na różnych etapach powstawania, eksploatacji i rozwoju systemów informatycznych.
I_1A_W02Ma zaawansowaną i uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu fundamentalnych obszarów informatyki.
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-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-1Wprowadzenie (platforma Java, maszyna wirtualna, JDK)
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-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)
T-W-4Typy generyczne i kolekcje (definiowanie typów generycznych; interfejsy List, Set, Map i ich podstawowe implementacje)
T-W-6Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów; StringBuilder; formatowanie łańcuchów; wyrażenia regularne)
T-W-8Programowanie współbieżne (wprowadzenie do wątków, Thread, Runnable; pule wątków, mechanizm ExecutorService; podstawowe mechanizmy synchronizacji)
T-W-9Elementy programowania funkcyjnego (wyrażenia lambda; operacje strumieniowe)
T-W-10Testy jednostkowe w Javie (biblioteka jUnit; atrapy obiektów, mocks)
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 uczenia sięItest_1A_C11.1_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_U04Potrafi identyfikować związki i zależności w procesach zachodzących w systemach rzeczywistych i na tej podstawie tworzyć modele komputerowe oraz przeprowadzać ich symulacje.
I_1A_U06Potrafi pozyskiwać, przesyłać, przetwarzać dane, podsumowywać wyniki eksperymentów empirycznych, dokonywać interpretacji uzyskanych wyników i formułować wynikające z nich wnioski.
I_1A_U07Potrafi samodzielnie posługiwać się materiałami źródłowymi w zakresie analizy i syntezy zawartych w nich informacji oraz poddawać je krytycznej ocenie w odniesieniu do problemów informatycznych.
Cel przedmiotuC-1Zapoznanie studentów z językiem Java
C-2Przygotowanie studentów do samodzielnego tworzenia aplikacji w języku Java
Treści programoweT-L-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)
T-L-7Definiowanie typów generycznych
T-L-1Podstawowe typy danych i zmienne; tablice; instrukcje sterujące; typy wyliczeniowe
T-L-2Definiowanie klas, dziedziczenie i polimorfizm
T-L-3Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne
T-L-4Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe
T-L-5Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków)
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-9Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne)
T-L-10Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI)
T-L-11Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI)
T-L-12Programowanie współbieżne (użycie Thread, Runnable i ExecutorService; synchronizacja)
T-L-13Wyrażenia lambda i operacje strumieniowe
T-L-14Testy jednostkowe w Javie (jUnit, mocks)
T-L-15Zaliczenie
Metody nauczaniaM-3Ćwiczenia praktyczne z użyciem komputerów
Sposób ocenyS-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).
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.