1. Nazwa przedmiotu
PROGRAMOWANIE
ZAAWANSOWANE
2. Symbol przedmiotu
I-2006C13
3. Forma zajęć
Wykłady i laboratoria
4. Punkty ECTS
6
5. Liczba godzin
A. Studia stacjonarne
Wykłady – 30; ćwiczenia – 30
B. Studia niestacjonarne
Wykłady – 24; ćwiczenia – 24
6. Opis przedmiotu
Celem kształcenia jest nabycie
podstawowych umiejętności w zakresie
elementów programowania
zaawansowanego, w szczególności
programowania wielowątkowego,
sieciowego, bazodanowego,
przetwarzania XML, projektowania
interfejsów graficznych. Studenci
powinni też poznać programistyczne
metody budowy serwerów (wraz z
kwestiami ich efektywności), i
korzystania z bibliotek i środowisk
wytwórczych („frameworków”).
Wszystkie te elementy można
stosunkowo łatwo i efektywnie
implementować w języku Java, dlatego
będzie on podstawą w realizacji zajęć
praktycznych.
7. Treści kształcenia
1
Standardy kształcenia dla kierunku studiów
„Informatyka”, Rozporządzenie Ministra Nauki i
Szkolnictwa Wyższego z dnia 12 lipca 2007 r.
w sprawie standardów kształcenia dla
poszczególnych kierunków oraz poziomów
kształcenia, a także trybu tworzenia i
warunków, jakie musi spełniać uczelnia, by
prowadzić studia międzykierunkowe oraz
makrokierunki – załącznik nr 45 (Dz. U. Nr 164
poz.1166 ze zm.).
Powtórzenie wiadomości o
programowaniu obiektowym:
hermetyzacja, dziedziczenie,
polimorfizm. Klasy i interfejsy. Wzorce
projektowe. Obsługa relacyjnych baz
danych z poziomu języka
programowania. Programowanie
wielowątkowe. Protokoły sieciowe:
gniazda TCP i UDP. Tworzenie
i przetwarzanie plików XML.
Projektowanie interfejsów graficznych;
schemat MVC. Budowa aplikacji
serwerowych.
8. Szczegółowe treści kształcenia
A. Wykłady
Temat 1
Wiadomości wstępne – 1 godzina (1)
Typy danych, pakiety, kompilacja programów
w Jawie. Programowanie obiektowe –
powtórzenie i implementacja w języku Java.
Budowa klas, tworzenie obiektów.
Temat 2
Dziedziczenie – 2 godziny (2)
Implementacja klas, metody niestatyczne i
funkcje statyczne. Dziedziczenie i polimorfizm.
Hermetyzacja. Rola interfejsów i klas
abstrakcyjnych.
Temat 3
Wyjątki i ich obsługa – 1 godzina (1)
Wyjątki sprawdzane i niesprawdzane i ich
obsługa.
Temat 4
Napisy – 1 godzina (1)
Operacje na napisach. Wyrażenia regularne.
Temat 5
Strumienie – 3 godziny (2)
Pojęcie strumieni; strumienie bajtowe i
znakowe, strumienie wejściowe i wyjściowe.
Rola, znaczenie i konsekwencje kodowania
UNICODE. Obsługa błędów związanych ze
strumieniami. Bufory i kanały. Nieblokujące
wejście/wyjście.
Temat 6
Operacje we/wy – 2 godziny (1)
Operacje We/Wy konsolowe i z
wykorzystaniem okienek graficznych. Pliki.
Dekorowanie strumieni.
Serializacja obiektów.
2
W nawiasach podana jest liczba godzin
realizowana na studiach niestacjonarnych.
Temat 7
Kolekcje– 3 godziny (2)
Kolekcje haszowane i drzewiaste. Mapy
(słowniki). Iteratory. Wydajność operacji na
kolekcjach.
Temat 8
Wątki – 3 godziny (2)
Tworzenie wątków. Semafory i muteksy. Kod
krytyczny i synchronizacja. Wstrzymywanie,
przerywanie i wznawianie wątków.
Temat 9
Komponenty GUI – 5 godzin (4)
Rodzaje i użycie komponentów graficznych.
Komponenty ciężkie i lekkie. Wątek
zdarzeniowy. Delegacyjny model obsługi
zdarzeń. Architektura MVC. Projektowanie
intefejsów graficznych.
Temat 10
Aplikacje sieciowe – 5 godzin (4)
Tworzenie gniazd. Protokół TCP i UDP.
Architektura klient-serwer. Serwery
wielowątkowe i oparte na selektorach.
Wprowadzenie do aplikacji WEB. Korzystanie
ze środowisk programistycznych i
„frameworków”.
Temat 11
Obsługa XML – 2 godziny (2)
Model SAX i DOM. Narzędzia do
przetwarzania i tworzenia plików XML.
Temat 12
Programowanie bazodanowe – 2 godziny (2)
Sterowniki baz danych. Tworzenie zapytań i
odczyt informacji z baz danych. Transakcje.
B. Ćwiczenia Laboratoryjne
Temat 1
Tworzenie klas i obiektów. Dziedziczenie – 3
godziny (2)
Temat 2
Obsługa wyjątków – 2 godziny (2)
Temat 3
Operacje na napisach i wyrażenia regularne –
3 godziny (2)
Temat 4
Strumienie, operacje na plikach – 4 godziny
(4)
Temat 5
Kolekcje – 3 godziny (2)
Temat 6
Tworzenie wątków, synchronizacja – 3 godziny
(3)
Temat 7
Tworzenie interfejsów graficznych – 4 godziny
(3)
Temat 8
Gniazda TCP – komunikacja klient-serwer – 5
godzin (4)
Temat 9
Obsługa plików XML – 3 godziny (2)
9. Efekty kształcenia – umiejętności i kompetencje
Nabycie podstawowych umiejętności
w posługiwaniu się zaawansowanymi
metodami programistycznymi z
wykorzystaniem środowiska języka
Jawa. W szczególności student
powinien zdobyć praktyczną wiedzę
umożliwiającą programowanie
sieciowe, bazodanowe, wielowątkowe
i być przygotowanym do aktywnego
udziału w realizacji projektów
informatycznych i pracy w zespołach
programistycznych.
10. Metody nauczania
Materiał prezentowany jest na
wykładach wraz z wieloma
przykładami, omówieniem
praktycznego zastosowania
poruszanych zagadnień i ich związku
z pojęciami poznanymi wcześniej.
Wiedza studentów pogłębiana jest na
ćwiczeniach laboratoryjnych, w czasie
których tworzą oni samodzielnie, pod
kierunkiem prowadzących, programy
ilustrujące poznany materiał.
11. Warunki zaliczenia przedmiotu
W ramach przedmiotu studenci muszą
zaliczyć następujące rygory: egzamin
i zaliczenie laboratoriów. Wymienione
rygory studenci zaliczają niezależnie.
Za ćwiczenia studenci mogą uzyskać
65 punktów na podstawie pisanych
programów i projektów. Ćwiczenia
uznaje się za zaliczone jeżeli student
3
Standardy kształcenia, op. cit.
uzyska co najmniej 20 punktów. Za
egzamin student może uzyskać 35
punktów. Egzamin uznaje się za
zaliczony jeżeli student uzyska nie
mniej niż 11 punktów. Z zaliczenia
całości przedmiotu wystawiana jest
jedna ocena końcowa wpisywana
w rubryce: zaliczenie wykładów –
egzamin. Ocena ta jest ustalana na
podstawie łącznej sumy punktów z
ćwiczeń i egzaminu. Punkty
przeliczane są na ocenę według
następujących kryteriów:
≥
92 punktów – ocena 6;
od 85 do 91,9 – ocena 5,5;
od 78 do 84,9 – ocena 5;
od 71 do 77,9 – ocena 4,5;
od 64 do 70,9 – ocena 4;
od 57 do 63,9 – ocena 3,5;
od 50 do 56,9 – ocena 3;
< 50 – ocena 2.
W przypadku uzyskania z egzaminu co
najmniej 11 punktów oraz z ćwiczeń co
najmniej 20 punktów, ale łącznie mniej
niż 50 punktów, student sam wybiera
rygory do zaliczenia poprawkowego
(ćwiczenia i/lub egzamin) aby
przekroczyć granicę 50 punktów
i uzyskać ocenę pozytywną
z przedmiotu. Jeżeli student ma
poniżej 20 punktów z ćwiczeń i/lub
poniżej 12 punktów z egzaminu, to
musi powtarzać przedmiot w kolejnym
roku akademickim.
12. Literatura podstawowa
1. C.S. Horstmann i G. Cornell –
Core Java 2, Helion, kilka wydań
2. B. Eckel – Thinking in Java,
Helion, kilka wydań
3.
R. Lafore – Java. Algorytmy i
struktury danych, Helion 2004
13. Literatura uzupełniająca
1. P. Niemeyer i J. Knudsen – Java.
Wprowadzenie, Helion 2003
14. Osoby nadzorujące przedmiot
Dr hab. Tomasz R. Werner
15. Osoby prowadzące przedmiot
A. Wykłady
Dr hab. Tomasz R. Werner
B. Laboratoria
Dr inż. Krzysztof Murawski
Dr inż. Mirosław Barański
mgr inż. Rafał Maison
16. Data ostatniej aktualizacji treści syllabusa
8 marca 2010 r.
UWAGI DO SYLLABUSA
1.Punkt 7 i 9 przepisać ze standardów kształcenia, jeśli występuje (jeśli przedmiot jest
specjalistyczny to wyciąć przypisy).
2.W punkcie 10 wymienić liczbę godzin realizowaną bez udziału wykładowcy (jeśli
występują) oraz formę ich rozliczenia.
3.W punkcie 11 ściśle określić warunki zaliczenia. Stosować ocenianie dające sumaryczną
liczbę 100 punktów.