Aplikacje w środowisku Java (wykład)

Opis przedmiotu
Informacje ogólne
Organizator:Wydział Matematyki, Informatyki i Architektury Krajobrazu - Instytut Matematyki i Informatyki
Kod ECTS:11900-XXXX-1001WYK0017
Kierunek studiów: Informatyka (stacjonarne II stopnia)
Lokalizacja w planach rocznych:
Etap:Rok I - Semestr 1
Punkty ECTS: 6
Forma zaliczenia: Egzamin
Rozkład zajeć
Lokalizacja w programie modułowym:
Moduł programowy:Przedmioty kształcenia kierunkowego » Aplikacje w środowisku Java
Efekty kształcenia:
K_K01Ma świadomość ograniczenia swojej wiedzy i umiejętności, rozumie potrzebę dokształcania się i podnoszenia kompetencji zawodowych i osobistych, potrafi inspirować i organizować proces uczenia się innych osób
K_K02Potrafi odpowiednio określić priorytety w ramach realizowanego projektu informatycznego
K_K03Prawidłowo identyfikuje i rozstrzyga dylematy związane z wykonywaniem zawodu
K_K04Potrafi wykazać się inicjatywą i efektywnością w trakcie realizowanego projektu
K_K05Potrafi pracować indywidualnie i zespołowo przyjmując na siebie różne role, rozumie konieczność systematycznej pracy nad projektami o długofalowym charakterze
K_K06Potrafi wykorzystać zdobytą wiedzę w pracy zawodowej z zachowaniem zasad prawnych i etycznych
K_K07Rozumie społeczne aspekty stosowania zdobytej wiedzy oraz związaną z tym odpowiedzialność
K_K08Potrafi komunikować się przy użyciu różnych technik w środowisku zawodowym
K_K10Potrafi formułować opinie na temat podstawowych zagadnień informatycznych
K_U04Umie przedstawiać w mowie i na piśmie zaawansowane zagadnienia co najmniej jednej wybranej gałęzi informatyki
K_U05W wybranej dziedzinie potrafi określić i rozwijać swoje zainteresowania, w szczególności jest w stanie nawiązać kontakt ze specjalistami w swojej dziedzinie
K_U06Potrafi konstruować algorytmy o dobrych własnościach numerycznych, służące do rozwiązywania typowych i nietypowych problemów w dziedzinach stosowanych
K_U11Umie ocenić poprawność aplikacji, zgodność z dokumentacją projektową, zaproponować poprawki uwzględniające zaobserwowane błędy
K_U12Umie rozwiązać podstawowe problemy trójwymiarowej grafiki komputerowej
K_U13Potrafi tworzyć proste aplikacje internetowe w wybranej technologii
K_U14Potrafi budować proste interakcyjne aplikacje internetowe działające w oparciu o bazę danych
K_U19Potrafi praktycznie wykorzystać zaawansowaną wiedzę z zakresu wybranych działów informatyki
K_U20Potrafi swobodnie posługiwać się przynajmniej dwoma środowiskami programistycznymi
K_W01Posiada rozszerzoną wiedzę informatyczną w zakresie podstawowych działów informatyki
K_W02Posiada wiedzę i umiejętności pozwalające na rozwiązywanie problemów informatycznych – również w niestandardowych sytuacjach
K_W05Zna matematyczne podstawy teorii informacji, teorii algorytmów i kryptografii oraz ich praktyczne zastosowania w programowaniu i szeroko rozumianej informatyce
K_W07Ma ogólną wiedzę o aktualnych kierunkach rozwoju i najnowszych osiągnięciach w zakresie informatyki
Cele przedmiotu
C1 - Przedstawienie języka Java
C2 - Zaprezentowanie podstawowych metod tworzenia aplikacji w języku Java
C3 - Zaprezentowanie zaawansowanego, różnorodnego aparatu dostępnego każdemu programiście do kodowania aplikacji w języku Java
C4 - Wyrobienie w studentach umiejętności pisania i kompilowania programów w języku Java w postaci aplikacji bądź apletów z obsługą błędów, użyciem środowiska graficznego i programowania wielowątkowego oraz podstawowych struktur i bibliotek języka
Wymagania wstępne
Wstęp do programowania
Podstawy informatyki i programowania
Efekty kształcenia dla przedmiotu
WIEDZA
W1 - rozpoznawać wybrane elementy składni języka Java i porównywać je z innymi językami (np. C++) -- K_W01(INF) K_W02(INF) K_W07 (INF) K_W11(MAT)
W2 - definiować konstrukcje programistyczne, w tym różne algorytmy -K_W01(INF) K_W02(INF) K_W05(INF) K_W07(INF) K_W08(MAT) K_W09(MAT) K_W10(MAT) K_W11(MAT)
UMIEJĘTNOŚCI
U1 - rozpoznawać i stosować typy danych, wyrażenia, operatory, instrukcje sterujące, pakiety, klasy, interfejsy, kolekcje, strumienie i pliki, wątki, lambda-wyrażenia, zdarzenia, komponenty Swing i metody adekwatne do problemu, oprogramowywać algorytmy - K_U04(INF) K_U05(INF) K_U06(INF) K_U19(INF) K_U20(INF) K_U19(MAT) K_U20(MAT)
U2 - tworzyć aplikacje konsolowe, aplety, aplikacje w środowisku graficznym (grafika dwuwymiarowa i trójwymiarowa) oraz posługiwać się środowiskiem programistycznym IDE - K_U04(INF) K_U05(INF) K_U11(INF) K_U12(INF) K_U13(INF) K_U19(INF) K_U20(INF) K_U19(MAT) K_U20(MAT) K_U21(MAT) K_U22(MAT)

KOMPETENCJE SPOŁECZNE (POSTAWY)
K1 - postępować zgodne z obowiązującą wszystkich inżynierów oprogramowania etyką, a w szczególności dbać o jakość tworzonej przez siebie aplikacji - K_K01(INF)
K_K03(INF) K_K06(INF) K_K07(INF) K_K08(INF) K_K10(INF) , K_K01(MAT) K_K02(MAT) K_K04(MAT) K_K06(MAT)

K2 - pracować efektywnie i sprawnie, indywidualnie i zespołowo, umiejętnie oceniając priorytety w realizacji projektu -K_K02(INF) K_K03(INF) K_K04(INF) K_K05(INF) K_K08(INF) K_K03(MAT)
Metody dydaktyczne
Wykład: Wykład informacyjny (konwencjonalny) z prezentacją multimedialną
Ćwiczenia: Ćwiczenia praktyczne w pracowni komputerowej z wykorzystaniem rzutnika multimedialnego, indywidualna praca przy komputerze, implementacja i testowanie omawia-nych algorytmów.
Metody dydaktyczne: klasyczna problemowa, giełda pomysłów, dyskusja, indywidualna praca ze studentem, nauczanie wspierane technikami informacyjnymi, praca z tekstem, praca w grupie.
Treści programowe przedmiotu
Wprowadzenie.
Podstawowe elementy języka.
Klasy i obiekty.
Dziedziczenie, polimorfizm.
Działania na napisach.
Wyjątki.
Interfejsy, klasy abstrakcyjne, anonimowe i wewnętrzne.
Typy i metody sparametryzowane. Programowanie generyczne.
Kolekcje.
Strumienie i pliki.
Programowanie współbieżne (wątki, zadania i wykonawcy, synchronizacja).
Podstawowe komponenty biblioteki Swing, szkielet aplikacji z interfejsem graficznym.
Obsługa zdarzeń w Swing.
Inne komponenty Swing interfejsu użytkownika.
Grafika trójwymiarowa.
Elementy programowania funkcyjnego. Lambda-wyrażenia i przetwarzanie strumieniowe.
Kryteria oceny i sposoby weryfikacji zakładanych efektów kształcenia
Warunkiem zaliczenia przedmiotu jest obecność studenta na zajęciach dydaktycznych i zaliczenie ćwiczeń i wykładu:
- zaliczenie ćwiczeń – 1 kolokwium (50%), projekt zaliczeniowy (50%)
- egzamin ustny przy wykorzystaniu aplikacji zaliczeniowej

wynik końcowy poniżej 50% punktów – ocena niedostateczna
szczegółowe zasady oceniania są podawane studentom z każdą edycją przedmiotu.

W1 - W2 - egzamin, kolokwium, projekt zaliczeniowy, przygotowanie do zajęć, aktywność na zajęciach
U1 - U2 - egzamin, kolokwium, projekt zaliczeniowy, przygotowanie do zajęć, aktywność na zajęciach
K1 - K2 - przygotowanie do zajęć, aktywność na zajęciach

GODZINOWE EKWIWALENTY PUNKTÓW ECTS
Godziny realizowane w ramach programu studiów
Wykład 30
Ćwiczenia 30
Łączna liczba godzin 60
Praca własna
Przygotowanie do zajęć 30
Studiowanie literatury 20
Przygotowanie do kolokwium i zaliczenia 50
Łączna liczba godzin 100
Sumaryczna liczba punktów ECTS dla modułu 6
Literatura podstawowa i uzupełniająca
Literatura podstawowa
1. Barteczko, JAVA Programowanie praktyczne od podstaw, PWN, 2014
2. J. Bloch, Java. Efektywne programowanie, Helion, Gliwice 2009
3. http://docs.oracle.com/javase/8/docs/
4. http://docs.oracle.com/javase/9/docs/
5. C. S. Horstmann, G. Cornell, Java. Podstawy, Helion, Gliwice 2013
6. C. S. Horstmann, Java. Techniki zaawansowane, Helion, Gliwice 2017
7. The Java Tutorials, http://download.oracle.com/javase/tutorial/
Literatura uzupełniająca
1. B. Bylina, J. Bylina, J. Mycka, Podstawy technologii informacyjnej i informatyki w przykładach i zadaniach, Wydawnictwo UMCS, Lublin 2007
2. B. Eckel, Thinking in Java, 4th Edition, Prentice Hall, Upper Saddle River, NJ, 2006
3. M. Lis, Java. Ćwiczenia praktyczne, Helion, Gliwice 2002
4. M. Lis, Java. Ćwiczenia zaawansowane, Helion, Gliwice 2002
5. R. C. Martin, Czysty kod. Podręcznik dobrego programisty, Helion, Gliwice 2010
6. L. Miękina, Inżynieria oprogramowania, Uczelniane Wydawnictwa Naukowo–Dydaktyczne AGH, Kraków 2009
7. M. Weisfeld, Myślenie obiektowe w programowaniu, Helion, Gliwice 2010