Wydział Informatyki - Informatyka (N1)
specjalność: Inżynieria oprogramowania
Sylabus przedmiotu Język Java:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia niestacjonarne | 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
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Programowanie 2 |
W-2 | Algorytmy 1 |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Zapoznanie studentów z językiem Java |
C-2 | Przygotowanie studentów do samodzielnego tworzenia aplikacji w języku Java |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Podstawowe typy danych i zmienne; tablice; instrukcje sterujące; typy wyliczeniowe | 3 |
T-L-2 | Definiowanie klas, dziedziczenie i polimorfizm | 3 |
T-L-3 | Obiekty i referencje; porównywanie obiektów, metody equals, hashcode i toString; składowe statyczne | 3 |
T-L-4 | Interfejsy i klasy abstrakcyjne; interfejsy z implementacją domyślną; klasy wewnętrzne i anonimowe | 3 |
T-L-5 | Obsługa wyjątków (rzucanie, łapanie i definiowanie wyjątków; rodzaje wyjątków) | 3 |
T-L-6 | Kolekcje (podstawowe implementacje listy, zbioru i mapy; komparatory, klasy pomocnicze) | 3 |
T-L-7 | Definiowanie typów generycznych | 3 |
T-L-8 | Operacje 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-9 | Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów, StringBuilder; formatowanie łańcuchów; wyrażenia regularne) | 1 |
T-L-10 | Interfejsy użytkownika w Swing (ramki, layout manager, podstawowe komponenty GUI). Interfejsy użytkownika w Swing (zdarzenia, zaawansowane komponenty GUI). | 1 |
T-L-11 | Zaliczenie | 1 |
26 | ||
wykłady | ||
T-W-1 | Wprowadzenie (platforma Java, maszyna wirtualna, JDK) | 1 |
T-W-2 | Podstawy języka Java (typy danych i zmienne; tablice; instrukcje sterujące) | 1 |
T-W-3 | Programowanie 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-4 | Typy generyczne i kolekcje (definiowanie typów generycznych; interfejsy List, Set, Map i ich podstawowe implementacje) | 2 |
T-W-5 | Operacje wejścia/wyjścia (klasa File; obsługa strumieni wejścia/wyjścia; obsługa wyjątków, poprawne zamykanie zasobów). Operacje na łańcuchach tekstowych (klasa String, porównywanie łańcuchów; StringBuilder; formatowanie łańcuchów; wyrażenia regularne). | 1 |
T-W-6 | Tworzenie interfejsów użytkownika (Swing i rozwiązania alternatywne, SWT, JavaFX; budowa interfejsów GUI w Swing). Programowanie współbieżne (wprowadzenie do wątków, Thread, Runnable; pule wątków, mechanizm ExecutorService; podstawowe mechanizmy synchronizacji). | 1 |
T-W-7 | Elementy programowania funkcyjnego (wyrażenia lambda; operacje strumieniowe). Testy jednostkowe w Javie (biblioteka jUnit; atrapy obiektów, mocks). | 1 |
10 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w zajęciach | 26 |
A-L-2 | Przygotowanie do zajęć laboratoryjnych | 12 |
A-L-3 | Uzupełnienie ćwiczeń laboratoryjnych i wykonanie zadań domowych | 26 |
A-L-4 | Konsultacje dotyczące ćwiczeń laboratoryjnych | 11 |
75 | ||
wykłady | ||
A-W-1 | Uczestnictwo w zajęciach | 10 |
A-W-2 | Konsultacje dotyczące wykładów | 2 |
A-W-3 | Przygotowanie do zaliczenia | 7 |
A-W-4 | Samodzielne studiowanie tematu. | 5 |
A-W-5 | Zaliczenie | 1 |
25 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykłady oparte na prezentacjach multimedialnych |
M-2 | Pokazy praktyczne - demonstracje użycia narzędzi programistycznych |
M-3 | Ćwiczenia praktyczne z użyciem komputerów |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Ocena zadań zrealizowanych w ramach danego ćwiczenia laboratoryjnego (na koniec każdych zajęć) |
S-2 | Ocena formująca: Ocena zadań domowych i ćwiczeń uzupełniających |
S-3 | Ocena 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-4 | Ocena podsumowująca: Sprawdzenie wiedzy teoretycznej dotyczącej języka Java i platformy Java (test pisemny) |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposó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_W04 | — | — | C-1, C-2 | T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7 | M-1, M-2 | S-4 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposó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_U10 | — | — | C-1, C-2 | T-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 | M-3 | S-1, S-2, S-3 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium 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,0 | Zna podstawowe konstrukcje języka Java (strukturalne i obiektowe). | |
3,5 | Potrafi opisać mechanizmy programowania obiektowego w Javie (klasy, interfejsy, obsługa wyjątków). | |
4,0 | Potrafi opisać główne elementy Java API (w tym I/O, wyjątki, Swing GUI). | |
4,5 | Potrafi opisać mechanizmy synchronizacji w aplikacjach wielowątkowych. Potrafi omówić stosowanie API strumieniowych i wyrażeń lambda. | |
5,0 | Potrafi 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łcenia | Ocena | Kryterium 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,0 | Potrafi samodzielnie zaimplementować proste aplikacje w języku Java. | |
3,5 | Potrafi samodzielnie zaimplementować aplikacje obiektowe, odpowiednio stosując klasy, interfejsy i obsługę wyjątków. | |
4,0 | Potrafi zaimplementować złożoną aplikację, korzystającą z najważniejszych elementów Java API (w tym I/O, wyjątki, Swing GUI). | |
4,5 | Potrafi zaimplementować aplikację wielowątkową oraz zastosować API strumieniowe i wyrażenia lambda. | |
5,0 | Potrafi samodzielnie wybrać optymalne podejście do implementacji oraz zamodelować hierarchię klas. |
Literatura podstawowa
- Cay S. Horstmann, Java. Podstawy. Wydanie X, Helion, 2016
- Kathy Sierra, Bert Bates, Java. Rusz głową! Wydanie II, Helion, 2010
Literatura dodatkowa
- Cay S. Horstmann, Java. Techniki zaawansowane. Wydanie X, Helion, 2017
- Joshua Bloch, Effective Java (3rd Edition), Addison-Wesley Professional, 2018
- Radosław Sokół, Testowanie aplikacji Java za pomocą JUnit, Helion, 2018
- Kent Beck, TDD. Sztuka tworzenia dobrego kodu, Helion, 2014