KARTA KURSU Nazwa Programowanie obiektowe 2 Nazwa w j. ang. Object Oriented Programming 2 Kod Punktacja ECTS* 4 Koordynator dr Dariusz Pałka Zespół dydaktyczny: dr Dariusz Pałka dr Leszek Głowacki dr Łukasz T. Stępień Opis kursu (cele kształcenia) Celem kursu jest rozszerzenie wiedzy na temat języka C++ (w tym w zakresie szablonów klas, biblioteki STL i obsługi wyjątków) oraz nauka podstaw programowania obiektowego z zastosowaniem języka Java. Kurs prowadzony jest w języku polskim. Warunki wstępne Wiedza Umiejętności Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++. Potrafi zapisywać podstawowe algorytmy i struktury danych w języku C++, projektuje i tworzy z wykorzystaniem podstaw metodologii obiektowej proste programy w języku C++. Kursy Programowanie obiektowe 1. Efekty kształcenia Wiedza W1: zna na poziomie średnio zaawansowanym zagadnienia dotyczące szablonów klas i funkcji w języku C++. W2: potrafi wymienić podstawowe elementy biblioteki STL i objaśnić sposób ich użycia w celu realizacji określonych zadań programistycznych. W3: ma wiedzę dotyczącą definiowania sytuacji wyjątkowych i ich obsługi zarówno w języku C++ jak i Java. W4: zna składnie języka Java i potrafi wskazać różnice między językiem Java i C++. K_W7 K_W6 K_W7 K_W7 1
W5: zna wybrane klasy z J2SE API i przykłady ich zastosowania. KW_7 Umiejętności U1: potrafi zapisywać podstawowe algorytmy i struktury danych w języku Java. U2: projektuje i tworzy proste programy w języku Java z wykorzystaniem metodologii obiektowej. U3: wykorzystuje wybrane klasy z J2SE API do realizacji postawionych zadań programistycznych. U4: potrafi tworzyć w języku C++ programy z użyciem wyjątków oraz szablonów klas i funkcji. U5: potrafi wykorzystywać wybrane elementy biblioteki STL w tworzonych przez siebie programach. K_U5 K_U2 K_U1 K_U5 K_U4 K_U18 K_U5 K_U5 K_U18 Kompetencje społeczne K1: potrafi korzystać z różnych źródeł informacji (w tym zasobów sieciowych) do poszerzania własnej wiedzy i zdobywania nowych umiejętności. K2: wykazuje umiejętność stosowania w praktyce zdobytej wiedzy przedmiotowej i potrafi działać kreatywnie w celu rozwiązywania postawionych mu zadań. K_K1 K_K12 Studia stacjonarne Organizacja Forma zajęć Wykład (W) Ćwiczenia w grupach A K L S P E Liczba godzin 15 3 2
Studia niestacjonarne Organizacja Forma zajęć Wykład (W) Ćwiczenia w grupach A K L S P E Liczba godzin 1 2 Opis metod prowadzenia zajęć Kurs składa się z wykładu i ćwiczeń prowadzonych w formie laboratoriów. W ramach laboratoriów studenci projektują i tworzą zadane programy w języku Java i C++, które następnie są omawiane. Studenci w ramach pracy indywidualnej realizują zadane projekty programistyczne, które są omawiane z prowadzącym zajęcia. Poza zajęciami w formie tradycyjnej studenci biorą udział w zajęciach z wykorzystaniem platformy e-learningowej. Formy sprawdzania efektów kształcenia E learning Gry dydaktyczne Ćwiczenia w szkole Zajęcia terenowe Praca laboratoryjna Projekt indywidualny Projekt grupowy Udział w dyskusji Referat Praca pisemna (esej) Egzamin ustny Egzamin pisemny Inne W1 X X X W2 X X X W3 X X X W4 X X X W5 X X U1 X X X U2 X X X U3 X X X X U4 X X X X U5 X X X X K1 X X X K2 X Kryteria oceny Ocenę dobrą lub bardzo dobrą może uzyskać student, który: - potrafi przekładać zadane programy (lub ich fragmenty) z języka C++ na język Java i odwrotnie, - samodzielnie definiuje klasy wyjątków i obsługę wyjątków w swoich programach zarówno w języku C++ jak i Java, - tworzy własne szablony klas i funkcji (w tym implementuje proste algorytmy w formie szablonów) w języku C++, - definiuje klasy w języku Java na poziomie średnio-zaawansowanym i tworzy dla nich 3
dokumentację zgodną ze standardem Javadoc, - rozumie sposób działania mechanizmu zarządzania pamięcią w języku Java i potrafi wskazać różnice pomiędzy zarządzaniem pamięcią w językach Java i C++, - potrafi definiować i używać w swoich programach przestrzenie nazw w języku C++, - potrafi tworzyć własne algorytmy i kontenery współpracujące z biblioteką STL. Uwagi Treści merytoryczne (wykaz tematów) 1. Podstawy języka Java podobieństwa i różnice między językami Java i C++. 2. Maszyna wirtualna JVM. 3. Zarządzanie pamięcią w języku Java. 4. Kompilacja i uruchamianie programów w języku Java. 5. Zintegrowane środowisko programistyczne dla języka Java. 6. Elementy Java 2 Platform Standard Edition API Specification. 7. Wyjątki i ich obsługa w językach C++ i Java. 8. Elementy biblioteki STL (wybrane kontenery, iteratory i algorytmy). 9. Przestrzenie nazw w języku C++. 1. Szablony klas i funkcji w języku C++. 11. Wielodziedziczenie w językach C++ i Java. Wykaz literatury podstawowej 1. Stroustrup B.: Język C++, WNT 28 - wybrane rozdziały 2. Eckel B.: Thinking in Java wybrane rozdziały (część książki w wersji polskiej dostępna w ramach Biblioteki Cyfrowej UP) Wykaz literatury uzupełniającej 1. Eckel B.: Thinking in C++ 2. Sierra K., Bates B.: Head First Java 3. Dokumentacja do J2SE API wybrane fragmenty 4. Working Draft, Standard for Programming Language C++ ( http://www.openstd.org/jtc1/sc22/wg21/docs/papers/211/n3242.pdf) wybrane fragment 5. Dattatri K.: Język C++. Efektywne programowanie obiektowe, Helion 25 6. Schildt H.: C++ Sztuka programowania, Helion 25 7. Josuttis N. M.: C++. Programowanie zorientowane obiektowo. Vademecum profesjonalisty. Helion 23. 4
Bilans godzinowy zgodny z CNPS (Całkowity Nakład Pracy Studenta) studia stacjonarne Liczba godzin w kontakcie z Wykład 15 Konwersatorium (ćwiczenia, laboratorium itd.) 3 Pozostałe godziny kontaktu studenta z prowadzącym 2 Lektura w ramach przygotowania do zajęć 15 Liczba godzin pracy studenta bez kontaktu z Przygotowanie krótkiej pracy pisemnej lub referatu po zapoznaniu się z niezbędną literaturą przedmiotu Przygotowanie projektu lub prezentacji na podany temat (praca w grupie) Przygotowanie do egzaminu 2 Ogółem bilans czasu pracy 1 Liczba punktów ECTS w zależności od przyjętego przelicznika 4 Bilans godzinowy zgodny z CNPS (Całkowity Nakład Pracy Studenta) studia niestacjonarne Liczba godzin w kontakcie z Wykład 1 Konwersatorium (ćwiczenia, laboratorium itd.) 2 Pozostałe godziny kontaktu studenta z prowadzącym 25 Lektura w ramach przygotowania do zajęć 35 Liczba godzin pracy studenta bez kontaktu z Przygotowanie krótkiej pracy pisemnej lub referatu po zapoznaniu się z niezbędną literaturą przedmiotu Przygotowanie projektu lub prezentacji na podany temat (praca w grupie) Przygotowanie do egzaminu 35 Ogółem bilans czasu pracy 125 Liczba punktów ECTS w zależności od przyjętego przelicznika 5 5