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
Nauczyciel odpowiedzialny Krzysztof Kraska <Krzysztof.Kraska@zut.edu.pl>
Inni nauczyciele
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ęć laboratoryjnych14
A-L-3Uzupełnienie ćwiczeń laboratoryjnych i wykonanie zadań domowych14
A-L-4Udział w konsultacjach2
75
wykłady
A-W-1Uczestnictwo w zajęciach15
A-W-2Konsultacje dotyczące wykładów1
A-W-3Przygotowanie do zaliczenia9
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 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
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_W04, 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
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_U09, I_1A_U10C-1, C-2T-L-1, T-L-2, T-L-3, T-L-4, T-L-5, T-L-6, T-L-7, 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
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 uczenia sięOcenaKryterium 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ęć laboratoryjnych14
A-L-3Uzupełnienie ćwiczeń laboratoryjnych i wykonanie zadań domowych14
A-L-4Udział w konsultacjach2
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 zaliczenia9
25
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_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_W04Ma wiedzę w zakresie programowania systemów komputerowych, zna podstawowe paradygmaty programowania i wiodące języki programowania.
I_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.
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ęI_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_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.
I_1A_U10Potrafi projektować i implementować systemy informatyczne posługując się narzędziami wspomagającymi proces wytwarzania oprogramowania na różnych jego etapach.
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-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-6Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze)
T-L-7Definiowanie typów generycznych
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.