Module also offered within study programmes:
General information:
Name:
Object Oriented Programming
Course of study:
2015/2016
Code:
BIT-1-403-s
Faculty of:
Geology, Geophysics and Environmental Protection
Study level:
First-cycle studies
Specialty:
-
Field of study:
Applied Computer Science
Semester:
4
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
dr Oleksik Paweł (oleksik@agh.edu.pl)
Academic teachers:
dr Oleksik Paweł (oleksik@agh.edu.pl)
Module summary

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence
M_K001 Potrafi komunikować się z otoczeniem, jest zdolny do poszerzania wiedzy IT1A_K06, IT1A_K01, IT1A_K04 Project,
Essays written during classes
Skills
M_U001 Umie zdefiniować hierarchię klas w języku C++. IT1A_U16, IT1A_U13 Test,
Project
M_U002 Umie w języku C++ zdefiniować obiekty zadanych typów oraz posługiwać się nimi. IT1A_U16, IT1A_U13 Project,
Execution of laboratory classes
M_U003 Potrafi korzystać z nieobiektowych właściwości C++ (wyjątki, szablony). IT1A_U16, IT1A_U13 Project,
Execution of laboratory classes
Knowledge
M_W001 Rozumie paradygmat obiektowy i umie posługiwać się podstawową terminologią. IT1A_W07 Test,
Project
M_W002 Potrafi wskazać te elementy języków programowania, które są związane z podejściem obiektowym. IT1A_W07 Test,
Project
M_W003 Potrafi zaprojektować proste hierarchie klas. IT1A_W07, IT1A_W09 Test,
Project
M_W004 Zna zasady definiujące cykl życia obiektów, w tym reguły dotyczące konstruktorów i destruktorów. IT1A_W07 Test,
Project
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Others
E-learning
Social competence
M_K001 Potrafi komunikować się z otoczeniem, jest zdolny do poszerzania wiedzy - - + - - - - - - - -
Skills
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). + - + - - - - - - - -
Knowledge
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. + - + - - - - - - - -
Module content
Lectures:
  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.

Laboratory classes:
  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.
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 120 h
Module ECTS credits 4 ECTS
Participation in lectures 14 h
Realization of independently performed tasks 17 h
Participation in laboratory classes 42 h
Preparation for classes 47 h
Additional information
Method of calculating the final grade:

Ocena końcowa odpowiada ocenie z zaliczenia.

Prerequisites and additional requirements:

Umiejętność programowania proceduralnego.

Recommended literature and teaching resources:

Bruce Eckel, „Thiking in C++”

Scientific publications of module course instructors related to the topic of the module:

Additional scientific publications not specified

Additional information:

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