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