Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie obiektowe
Tok studiów:
2015/2016
Kod:
BIT-1-403-s
Wydział:
Geologii, Geofizyki i Ochrony Środowiska
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka Stosowana
Semestr:
4
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr Oleksik Paweł (oleksik@agh.edu.pl)
Osoby prowadzące:
dr Oleksik Paweł (oleksik@agh.edu.pl)
Krótka charakterystyka modułu

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ń)
Wiedza
M_W001 Rozumie paradygmat obiektowy i umie posługiwać się podstawową terminologią. IT1A_W07 Kolokwium,
Projekt
M_W002 Potrafi wskazać te elementy języków programowania, które są związane z podejściem obiektowym. IT1A_W07 Kolokwium,
Projekt
M_W003 Potrafi zaprojektować proste hierarchie klas. IT1A_W07, IT1A_W09 Kolokwium,
Projekt
M_W004 Zna zasady definiujące cykl życia obiektów, w tym reguły dotyczące konstruktorów i destruktorów. IT1A_W07 Kolokwium,
Projekt
Umiejętności
M_U001 Umie zdefiniować hierarchię klas w języku C++. IT1A_U16, IT1A_U13 Kolokwium,
Projekt
M_U002 Umie w języku C++ zdefiniować obiekty zadanych typów oraz posługiwać się nimi. IT1A_U16, IT1A_U13 Projekt,
Wykonanie ćwiczeń laboratoryjnych
M_U003 Potrafi korzystać z nieobiektowych właściwości C++ (wyjątki, szablony). IT1A_U16, IT1A_U13 Projekt,
Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K001 Potrafi komunikować się z otoczeniem, jest zdolny do poszerzania wiedzy IT1A_K06, IT1A_K01, IT1A_K04 Projekt,
Wypracowania pisane na zajęciach
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Rozumie paradygmat obiektowy i umie posługiwać się podstawową terminologią. + - - - - - - - - - -
M_W002 Potrafi wskazać te elementy języków programowania, które są związane z podejściem obiektowym. + - + - - - - - - - -
M_W003 Potrafi zaprojektować proste hierarchie klas. + - + - - - - - - - -
M_W004 Zna zasady definiujące cykl życia obiektów, w tym reguły dotyczące konstruktorów i destruktorów. + - + - - - - - - - -
Umiejętności
M_U001 Umie zdefiniować hierarchię klas w języku C++. - - + - - - - - - - -
M_U002 Umie w języku C++ zdefiniować obiekty zadanych typów oraz posługiwać się nimi. - - + - - - - - - - -
M_U003 Potrafi korzystać z nieobiektowych właściwości C++ (wyjątki, szablony). + - + - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi komunikować się z otoczeniem, jest zdolny do poszerzania wiedzy - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
  1. Paradygmat obiektowy.

    • Podstawowe pojęcia: abstrakcja, enkapsulacja, dziedziczenie i polimorfizm.
    • Tworzenie hierarchii typów: uogólnienie vs. specjalizacja.
    • Typy abstrakcyjne i interfejsy.
    • Alternatywne podejścia: klasy jako obiekty, obiekty modyfikowane dynamicznie, prototypowanie.

  2. Nieobiektowe rozszerzenia C++ względem C.

    • Wzmocnienie kontroli typów; nowe typy danych, referencje.
    • Przestrzenie nazw, przeładowywanie nazw funkcji.
    • Parametry domyślne i parametry anonimowe.
    • Dynamiczne zarządzanie pamięcią.
    • Zmiany w bibliotece standardowej.

  3. Podstawy programowania obiektowego w C++.

    • Semantyka definicji typu (klasy).
    • Zasady dostępu do składowych.
    • Cykl życia instancji (obiektu); metody specjalne: konstruktor i destruktor.
    • Problemy z przekazywaniem obiektu przez stos: konstruktor kopiujący.
    • Przeciążanie operatorów.

  4. Dziedziczenie.

    • Przesłanianie nazw; operator zakresu.
    • Metody nie dziedziczone.
    • Dziedziczenie wielobazowe.

  5. Polimorfizm.

    • Metody wirtualne.
    • Klasy abstrakcyjne.

  6. Obsługa wyjątków.
  7. Programowanie generyczne.

    • Szablony.
    • Biblioteka STL.

  8. Programowanie modularne w C++.

    • Tworzenie bibliotek i plików nagłówkowych – zmiany względem C.

Ćwiczenia laboratoryjne:
  1. Podstawy programowania obiektowego w C++.

    • Klasy, metody, metody specjalne.
    • Obsługa wyjątków.
    • Dynamiczne zarządzanie pamięcią.

  2. Testy jednostkowe. Programowanie sterowane testami.
  3. Przeładowywanie operatorów.

    • Podstawowe przypadki.
    • Operatory specjalnie traktowane.

  4. Dziedziczenie.

    • Przeładowywanie i przesłanianie.
    • Rzutowanie typów.
    • Dziedziczenie operatorów.
    • Dziedziczenie wielobazowe.

  5. Polimorfizm. Klasy abstrakcyjne.
  6. Elementy programowania generycznego.
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 120 godz
Punkty ECTS za moduł 4 ECTS
Udział w wykładach 14 godz
Samodzielne studiowanie tematyki zajęć 17 godz
Udział w ćwiczeniach laboratoryjnych 42 godz
Przygotowanie do zajęć 47 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocena końcowa odpowiada ocenie z zaliczenia.

Wymagania wstępne i dodatkowe:

Umiejętność programowania proceduralnego.

Zalecana literatura i pomoce naukowe:

Bruce Eckel, „Thiking in C++”

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Podstawowym terminem uzyskania zaliczenia jest koniec zajęć w danym semestrze. Student może dwukrotnie przystąpić do poprawkowego zaliczania.

udział „praktycznych” punktów ECTS: 3
udział „teoretycznych” punktów ECTS: 1