sylabus - Newton

Transkrypt

sylabus - Newton
Nazwa modułu:
Rok akademicki:
Wydział:
Kierunek:
Programowanie obiektowe II
2015/2016
Kod: JIS-1-501-s
Punkty ECTS:
5
Fizyki i Informatyki Stosowanej
Informatyka Stosowana
Poziom studiów:
Specjalność:
Studia I stopnia
Język wykładowy: Polski
-
Forma i tryb studiów:
Profil kształcenia:
-
Ogólnoakademicki (A)
Semestr: 5
Strona www: http://newton.fis.agh.edu.pl/~woloszyn/po2/
Osoba odpowiedzialna:
dr inż. Wołoszyn Maciej ([email protected])
Osoby prowadzące: dr inż. Malinowski Janusz ([email protected])
dr inż. Wołoszyn Maciej ([email protected])
Opis efektów kształcenia dla modułu zajęć
Kod EKM
Student, który zaliczył moduł zajęć
wie/umie/potrafi
Powiązania z EKK
Sposób weryfikacji efektów
kształcenia (forma zaliczeń)
M_W001
Student zna i rozumie składnię języka
Java, wie jak funkcjonuje środowisko
uruchomieniowe, a także na czym
polega różnica między kompilacją do
postaci kodu bajtowego i do kodu
binarnego, oraz między
uruchomieniem i sposobem działania
obu tych rozwiązań, w tym różnice w
zarządzaniu pamięcią.
IS1A_W07, IS1A_W08
Aktywność na zajęciach,
Egzamin, Udział w dyskusji,
Wykonanie ćwiczeń
laboratoryjnych
M_W002
Student zna założenia paradygmatu
programowania obiektowego i wie jak
je realizować za pomocą
mechanizmów dostępnych w języku
Java, oraz jakie są różnice w stosunku
do języka C++.
IS1A_W04, IS1A_W05,
IS1A_W07
Aktywność na zajęciach,
Egzamin, Udział w dyskusji,
Wykonanie ćwiczeń
laboratoryjnych
Wiedza
Umiejętności
1/7
Karta modułu - Programowanie obiektowe II
M_U001
Student potrafi stworzyć aplikacje oraz
aplety z wykorzystaniem języka Java,
zastosować w nich zasadnicze techniki
obiektowe (enkapsulacja,
dziedziczenie, polimorfizm), a także
przygotować dokumentację kodu
źródłowego za pomocą javadoc.
IS1A_U03, IS1A_U07,
IS1A_U13, IS1A_U14
Wykonanie ćwiczeń
laboratoryjnych
M_U002
Student potrafi wykorzystać
dodatkowe biblioteki oraz narzędzia
dla języka Java w celu możliwie
efektywnej realizacji postawionych
zadań, w tym do debugowania i
testowania oprogramowania.
IS1A_U09, IS1A_U10,
IS1A_U13, IS1A_U14,
IS1A_U19
Wykonanie ćwiczeń
laboratoryjnych
M_U003
Student umie samodzielnie
wyszukiwać szczegółowe informacje w
dostępnych zasobach dokumentacji
oraz korzystać z popularnych
środowisk programistycznych takich
jak NetBeans i Eclipse.
IS1A_U01, IS1A_U10,
IS1A_U11, IS1A_U19
Wykonanie ćwiczeń
laboratoryjnych
IS1A_K05, IS1A_K06
Udział w dyskusji, Wykonanie
ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K001
Student posiada umiejętność
zwięzłego i precyzyjnego opisania
własnych rozwiązań oraz określenia
możliwych zastosowań.
Matryca efektów kształcenia w odniesieniu do form zajęć
Konwersatori
um
Zajęcia
seminaryjne
Zajęcia
praktyczne
Zajęcia
terenowe
Zajęcia
warsztatowe
Student zna i rozumie
składnię języka Java, wie jak
funkcjonuje środowisko
uruchomieniowe, a także na
czym polega różnica między
kompilacją do postaci kodu
bajtowego i do kodu
binarnego, oraz między
uruchomieniem i sposobem
działania obu tych rozwiązań,
w tym różnice w zarządzaniu
pamięcią.
+
-
+
-
-
-
-
-
-
-
-
M_W002
Student zna założenia
paradygmatu programowania
obiektowego i wie jak je
realizować za pomocą
mechanizmów dostępnych w
języku Java, oraz jakie są
różnice w stosunku do języka
C++.
+
-
+
-
-
-
-
-
-
-
-
E-learning
Ćwiczenia
projektowe
M_W001
Inne
Ćwiczenia
laboratoryjne
Forma zajęć
Ćwiczenia
audytoryjne
Student, który zaliczył moduł
zajęć wie/umie/potrafi
Wykład
Kod EKM
Wiedza
Umiejętności
2/7
Karta modułu - Programowanie obiektowe II
M_U001
Student potrafi stworzyć
aplikacje oraz aplety z
wykorzystaniem języka Java,
zastosować w nich zasadnicze
techniki obiektowe
(enkapsulacja, dziedziczenie,
polimorfizm), a także
przygotować dokumentację
kodu źródłowego za pomocą
javadoc.
+
-
+
-
-
-
-
-
-
-
-
M_U002
Student potrafi wykorzystać
dodatkowe biblioteki oraz
narzędzia dla języka Java w
celu możliwie efektywnej
realizacji postawionych
zadań, w tym do
debugowania i testowania
oprogramowania.
+
-
+
-
-
-
-
-
-
-
-
M_U003
Student umie samodzielnie
wyszukiwać szczegółowe
informacje w dostępnych
zasobach dokumentacji oraz
korzystać z popularnych
środowisk programistycznych
takich jak NetBeans i Eclipse.
+
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
Kompetencje społeczne
M_K001
Student posiada umiejętność
zwięzłego i precyzyjnego
opisania własnych rozwiązań
oraz określenia możliwych
zastosowań.
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład
– Język Java: charakterystyka, składnia, konwencje tworzenia kodu, typy danych,
operatory. Kompilatory i środowiska programistyczne.
– Klasy w Javie: metody i pola, dostęp do danych i enkapsulacja, składowe statyczne,
składowe final. Klasy final. Organizacja plików źródłowych. Dokumentowanie klas w
Javie. Tablice jedno- i wielowymiarowe, klasa Arrays.
– Klasa String i inne podstawowe klasy języka Java. Pakiety: sposób użycia oraz
definiowanie własnych. Przeładowanie metod. Konstruktory. Referencja this.
– Zarządzanie pamięcią, Garbage Collector.
– Dziedziczenie. Polimorfizm. Wczesne i późne wiązanie. Interfejsy. Klasy wewnętrzne.
Typ wyliczeniowy.
– Wyjątki i obsługa błędów, wyjątki sprawdzane i niesprawdzane, hierarchia klas
reprezentujących wyjątki.
– Mechanizm refleksji – wykrywanie typów. Obiekt Class.
– Operacje wejścia/wyjścia. Strumienie bajtowe i znakowe. Buforowanie.
– Serializacja. Sieci obiektów. Wersje serializowanych obiektów.
– Klasy generyczne (uogólnione). Metody sparametryzowane. Typy surowe.
– Kolekcje, iteratory, komparatory, algorytmy.
– Wątki: uruchamianie, priorytety, synchronizacja, komunikacja.
– Obsługa operacji sieciowych. Klasy biblioteczne z pakietu java.util.
3/7
Karta modułu - Programowanie obiektowe II
– Adnotacje. Testowanie: asercje, JUnit. Debugowanie, JDB.
Ćwiczenia laboratoryjne
1. Zapoznanie się z JDK i narzędziami dostępnymi w pracowni komputerowej
Efekty kształcenia:
– student potrafi samodzielnie przygotować plik z kodem źródłowym prostego,
opartego na przykładach z wykładu, programu w języku Java, z zastosowaniem ogólnie
przyjętych dla Javy konwencji,
– student umie kompilować go do postaci kodu bajtowego i potrafi zinterpretować
pojawiające się komunikaty o błędach i wykorzystać je do wprowadzenia poprawek w
kodzie,
– student potrafi uruchomić program za pomocą środowiska uruchomieniowego.
2. Definiowanie własnych klas i tworzenie obiektów w języku Java
Efekty kształcenia:
– student potrafi zastosować dostępne typy danych prostych,
– student potrafi definiować klasy z zestawem pól, konstruktorów i innych metod (w
tym przeładowanych), zgodnie z przedstawionymi wymaganiami, oraz umieszczać
przygotowane definicje w odpowiednich plikach,
– student potrafi wykorzystać samodzielnie zdefiniowane oraz podstawowe
biblioteczne klasy (np. String) do tworzenia obiektów, oraz posługiwać się nimi za
pomocą referencji i dostępnych operatorów,
– student potrafi prawidłowo zaplanować i zdefiniować dostęp (publiczny, prywatny,
pakietowy) do składników klas, a także wykorzystywać pola, metody i klasy typu final,
– student potrafi zaplanować i opisać cykl życia obiektu, oraz jego związek z
zagadnieniem zarządzania pamięcią w języku Java,
– student potrafi korzystać z tablic zarówno do obsługi typów prostych, jak i obiektów,
– student potrafi definiować i wykorzystywać klasy wewnętrzne oraz typy
wyliczeniowe,
– student potrafi zdefiniować własny pakiet i przygotować odpowiednią strukturę
katalogów i plików źródłowych,
– student potrafi wskazać różnice w realizacji powyższych zadań w językach Java i
C++.
3. Dziedziczenie, interfejsy i polimorfizm
Efekty kształcenia:
– student potrafi zaproponować i przygotować hierarchię dziedziczących po sobie klas
do opisania zadanego w ogólny, opisowy sposób problemu,
– student potrafi wykorzystać we własnych klasach możliwości pojawiające się dzięki
dziedziczeniu po klasie Object definiującej określone metody,
– student potrafi operować na dziedziczących po sobie obiektach z wykorzystaniem
skutków polimorfizmu,
– student potrafi operować na klasach wewnętrznych powiązanych relacjami
dziedziczenia,
– student potrafi definiować i wykorzystywać klasy abstrakcyjne oraz interfejsy.
4. Wyjątki i obsługa błędów
Efekty kształcenia:
– student potrafi zaplanować sposób obsługi błędów dla postawionego przed nim
problemu i zrealizować go za pomocą mechanizmu wyjątków,
– student potrafi korzystać z klas bibliotecznych reprezentujących wyjątki oraz
definiować w tym celu własne klasy umieszczając je w odpowiednich miejscach
hierarchii dziedziczenia,
5. Operacje wejścia i wyjścia, serializacja.
Efekty kształcenia:
4/7
Karta modułu - Programowanie obiektowe II
– student potrafi zastosować obiekty reprezentujące zasadnicze typy strumieni
danych: bajtowe i znakowe, buforowane, powiązane ze standardowymi strumieniami
systemowymi,
– student potrafi zaplanować mechanizm zapisu i odczytu danych w aplikacji, z
wykorzystaniem odpowiednich strumieni oraz z uwzględnieniem obsługi wyjątków
charakterystycznych dla operacji wejścia/wyjścia,
– student potrafi przeprowadzić serializację i deserializację obiektu oraz kontrolować,
które jego składniki będą podlegały temu procesowi,
– student potrafi sprawdzać zgodność wersji serializowanych i deserializowanych
obiektów.
6. Klasy generyczne i typy sparametryzowane
Efekty kształcenia:
– student potrafi zdefiniować metody i klasy używające jednego lub kilku parametrów
do uproszczenia rozwiązania zadanego problemu,
– student potrafi zastosować typy ograniczone oraz argumenty wieloznaczne.
7. Kolekcje i algorytmy
Efekty kształcenia:
– student potrafi wybrać optymalną dla zagadnienia kolekcję jako najwygodniejszą w
danej sytuacji strukturę danych,
– student potrafi praktycznie zastosować wybraną implementację kolekcji, oraz
posłużyć się dla niej odpowiednimi iteratorami,
– student potrafi uprościć realizację postawionego zadania poprzez zastosowanie
dostępnych algorytmów i komparatorów,
– student potrafi zdefiniować własną implementację wybranego interfejsu kolekcji.
8. Wątki
Efekty kształcenia:
– student potrafi zaplanować i zaimplementować rozwiązanie problemu
wymagającego zastosowania kilku równocześnie działających wątków,
– student potrafi tworzyć nowe wątki z poziomu własnej aplikacji, nadając im różne
priorytety,
– student potrafi zsynchronizować działanie wątków,
– student potrafi zrealizować komunikację międzywątkową.
9. Pakiet java.util.
Efekty kształcenia:
– student potrafi poruszać się swobodnie po dokumentacji klas pakietu java.util i
wyszukać klasy upraszczające rozwiązanie zadanego problemu,
– student potrafi zastosować najczęściej używane klasy pakietu (m.in. Date, Random,
klasy do obsługi napisów, kompresji i archiwizacji danych).
10. Obsługa sieci
Efekty kształcenia:
– student potrafi zastosować klasy z pakietu java.net do przesyłania danych za
pomocą standardowych protokołów sieciowych,
– student potrafi zaprojektować proste aplikacje działające wg schematu klient-serwer.
12. Adnotacje i testowanie
Efekty kształcenia:
– student potrafi zastosować typowe adnotacje do zamieszczenia w kodzie informacji
dla kompilatora,
– student potrafi zdefiniować własne typy adnotacji,
– student potrafi zastosować mechanizm asercji do podstawowej diagnostyki,
– student potrafi przygotować i przeprowadzić za pomocą JUnit całościowe testy
samodzielnie zdefiniowanej lub dostarczonej mu klasy.
5/7
Karta modułu - Programowanie obiektowe II
13. Zintegrowane środowiska programistyczne (IDE). Debugowanie kodu
Efekty kształcenia:
– student potrafi utworzyć w środowisku NetBeans lub Eclipse nowy projekt wybranego
typu, oraz przenieść do IDE istniejący projekt,
– student potrafi wykorzystać narzędzia środowiska do rozbudowy projektu,
– student potrafi przeprowadzić debugowanie własnego oraz dostarczonego mu kodu.
Sposób obliczania oceny końcowej
K = 0.5 L + 0.5 E
gdzie:
L – punkty uzyskane w ramach zaliczenia laboratorium (w procentach),
E – średnia (arytmetyczna, w procentach) liczba punktów uzyskana podczas wszystkich terminów
egzaminu, w których student(ka) brał(a) udział,
K – ocena końcowa (wynik procentowy zostanie przeliczony na ocenę zgodnie z Regulaminem Studiów
AGH, przy czym otrzymanie pozytywnej oceny końcowej następuje po uzyskaniu pozytywnego wyniku
egzaminu poprzedzonego zaliczeniem laboratorium).
Wymagania wstępne i dodatkowe
Umiejętność programowania w C i C++.
Znajomość podstaw metodologii obiektowej na poziomie modułu “Programowanie obiektowe I”.
Zalecana literatura i pomoce naukowe
Eckel B., Thinking in Java
Schildt H., Java. Kompendium programisty
Cornell G., Horstmann C.S., Java 2. Techniki zaawansowane
Stelting S., Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Graham I., Metody obiektowe w teorii i w praktyce
Wołoszyn M., Programowanie obiektowe II. Notatki do wykładu dostępne na stronie przedmiotu:
http://newton.fis.agh.edu.pl/~woloszyn/po2/
The Java Tutorials, dostępne na stronie http://docs.oracle.com/javase/tutorial/
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu
Nie podano dodatkowych publikacji
Informacje dodatkowe
• Sposób i tryb wyrównania zaległości powstałych wskutek nieobecności studenta na zajęciach:
Ćwiczenia laboratoryjne:
- Nieobecność na nie więcej niż dwóch zajęciach wymaga od studenta samodzielnego (z możliwością
wykorzystania godzin konsultacji) opanowania przerabianego na tych zajęciach materiału.
- Nieusprawiedliwiona nieobecność na więcej niż dwóch zajęciach oznacza brak możliwości zaliczenia
ćwiczeń laboratoryjnych.
- Student ma prawo do odrobienia każdej usprawiedliwionej nieobecności w wyznaczonym przez
prowadzącego terminie, lecz nie później jak w ostatnim tygodniu trwania zajęć (lub później w
szczególnie uzasadnionych przypadkach losowych).
Obecność na wykładzie: zgodnie z Regulaminem Studiów AGH.
• Zasady zaliczania zajęć:
Ćwiczenia laboratoryjne:
- W ramach poprawkowego zaliczenia ćwiczeń laboratoryjnych student ma prawo do odrobienia dwóch
ćwiczeń, jednak nie później jak w ostatnim tygodniu trwania zajęć. Termin ten może zostać wydłużony w
przypadku niemożliwości wcześniejszego wyrównania zaległości wynikającego z usprawiedliwionych
przyczyn.
- Student który bez usprawiedliwienia opuścił więcej niż dwa zajęcia nie uzyskuje zaliczenia ćwiczeń; od
takiej decyzji prowadzącego zajęcia student może się odwołać do prowadzącego przedmiot (moduł) lub
Dziekana.
•
Warunkiem przystąpienia do egzaminu jest wcześniejsze uzyskanie zaliczenia z ćwiczeń
laboratoryjnych.
6/7
Karta modułu - Programowanie obiektowe II
• Szczegółowe informacje organizacyjne dotyczące trybu zaliczania zajęć i odrabiania zaległości
dostępne są na stronie
http://newton.fis.agh.edu.pl/~woloszyn/po2/
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta
Obciążenie
studenta
Egzamin lub kolokwium zaliczeniowe
2 godz
Samodzielne studiowanie tematyki zajęć
42 godz
Przygotowanie do zajęć
42 godz
Udział w ćwiczeniach laboratoryjnych
28 godz
Udział w wykładach
28 godz
Sumaryczne obciążenie pracą studenta
142 godz
Punkty ECTS za moduł
5 ECTS
7/7