Module also offered within study programmes:
General information:
Annual:
2017/2018
Code:
EME-1-405-s
Name:
Basics of object programming
Faculty of:
Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering
Study level:
First-cycle studies
Specialty:
-
Field of study:
Microelectronics in industry and medicine
Semester:
4
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Full-time studies
Course homepage:
 
Responsible teacher:
Rogus Grzegorz (rogus@agh.edu.pl)
Academic teachers:
Rogus Grzegorz (rogus@agh.edu.pl)
Żołądź Mirosław (zoladz@agh.edu.pl)
dr inż. Otfinowski Piotr (potfin@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)
Skills
M_U001 Potrafi w podstawowym zakresie budować klasy zawierające konstruktor/destruktor ME1A_U22 Completion of laboratory classes
M_U002 Potrafi w podstawowym zakresie wykorzystywać wskaźniki do składników klas ME1A_U22 Completion of laboratory classes
M_U003 Potrafi w podstawowym zakresie wykorzystywać dziedziczenie i funkcje wirtualne ME1A_U22 Completion of laboratory classes
M_U004 Potrafi w podstawowym zakresie obsługiwać wyjątki ME1A_U22 Completion of laboratory classes
M_U005 Potrafi w podstawowym zakresie tworzyć aplikacje obiektowe w wybranym środowisku programistycznym ME1A_U22 Completion of laboratory classes
M_U006 Potrafi w podstawowym zakresie tworzyć interfejs użytkownika z użyciem wybranej biblioteki graficznej ME1A_U22 Completion of laboratory classes
M_U007 Potrafi w podstawowym zakresie obsługiwać wybrane interfejsy komunikacyjne ME1A_U22 Completion of laboratory classes
M_U008 potrafi napisać prosty program w języku C łącząc go z elementami biblioteki standardowej ME1A_U22 Completion of laboratory classes
M_U009 potrafi napisać prosty program w języku C z wykorzystaniem paradygmatów programowania obiektowego ME1A_U22 Completion of laboratory classes
M_U010 potrafi prawidłowo zaimplementować klasę o ustalonym interfejsie i zakresie odpowiedzialności projektując dodatkowe struktury danych i/lub wykorzystując gotowe komponenty, np..: szablony standardowej biblioteki C ME1A_U10, ME1A_U22 Completion of laboratory classes
M_U088 Potrafi w podstawowym zakresie tworzyć programy obiektowe dla systemów wbudowanych ME1A_U22 Completion of laboratory classes
Knowledge
M_W001 Ma podstawową wiedzę o klasach (konstruktory, destruktory, wskaźniki, referencje) ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W002 Ma podstawową wiedzę o dziedziczeniu i funkcjach wirtualnych ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W003 Ma podstawową wiedzę o obsłudze wyjątków ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W004 Ma podstawową wiedzę o tworzeniu aplikacji obiektowych w wybranym środowisku programistycznym ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W005 Ma podstawową wiedzę o tworzeniu interfejsu użytkownika z użyciem wybranej obiektowej biblioteki graficznej ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W006 Ma podstawową wiedzę o obsłudze wybranego interfejsu komunikacyjnego ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W007 Ma podstawową wiedzę o kwestiach specyficznych dla programowania obiektowego w systemach wbudowanych ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W008 zna i rozumie podstawowe cechy obiektowych języków programowania i potrafi wskazać ich realizację w języku C ME1A_W08, ME1A_W07 Completion of laboratory classes
M_W009 zna składnię języka: sposób definiowania klas, atrybutów, metod, zasady przeciążania funkcji i operatorów, rozumie pojęcie funkcji wirtualnych ME1A_W08, ME1A_W07 Completion of laboratory classes
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
Skills
M_U001 Potrafi w podstawowym zakresie budować klasy zawierające konstruktor/destruktor - - + - - - - - - - -
M_U002 Potrafi w podstawowym zakresie wykorzystywać wskaźniki do składników klas - - + - - - - - - - -
M_U003 Potrafi w podstawowym zakresie wykorzystywać dziedziczenie i funkcje wirtualne - - + - - - - - - - -
M_U004 Potrafi w podstawowym zakresie obsługiwać wyjątki - - + - - - - - - - -
M_U005 Potrafi w podstawowym zakresie tworzyć aplikacje obiektowe w wybranym środowisku programistycznym - - + - - - - - - - -
M_U006 Potrafi w podstawowym zakresie tworzyć interfejs użytkownika z użyciem wybranej biblioteki graficznej - - + - - - - - - - -
M_U007 Potrafi w podstawowym zakresie obsługiwać wybrane interfejsy komunikacyjne - - + - - - - - - - -
M_U008 potrafi napisać prosty program w języku C łącząc go z elementami biblioteki standardowej - - - - - - - - - - -
M_U009 potrafi napisać prosty program w języku C z wykorzystaniem paradygmatów programowania obiektowego - - - - - - - - - - -
M_U010 potrafi prawidłowo zaimplementować klasę o ustalonym interfejsie i zakresie odpowiedzialności projektując dodatkowe struktury danych i/lub wykorzystując gotowe komponenty, np..: szablony standardowej biblioteki C - - - - - - - - - - -
M_U088 Potrafi w podstawowym zakresie tworzyć programy obiektowe dla systemów wbudowanych - - + - - - - - - - -
Knowledge
M_W001 Ma podstawową wiedzę o klasach (konstruktory, destruktory, wskaźniki, referencje) + - - - - - - - - - -
M_W002 Ma podstawową wiedzę o dziedziczeniu i funkcjach wirtualnych + - - - - - - - - - -
M_W003 Ma podstawową wiedzę o obsłudze wyjątków + - - - - - - - - - -
M_W004 Ma podstawową wiedzę o tworzeniu aplikacji obiektowych w wybranym środowisku programistycznym + - - - - - - - - - -
M_W005 Ma podstawową wiedzę o tworzeniu interfejsu użytkownika z użyciem wybranej obiektowej biblioteki graficznej + - - - - - - - - - -
M_W006 Ma podstawową wiedzę o obsłudze wybranego interfejsu komunikacyjnego + - - - - - - - - - -
M_W007 Ma podstawową wiedzę o kwestiach specyficznych dla programowania obiektowego w systemach wbudowanych + - - - - - - - - - -
M_W008 zna i rozumie podstawowe cechy obiektowych języków programowania i potrafi wskazać ich realizację w języku C - - - - - - - - - - -
M_W009 zna składnię języka: sposób definiowania klas, atrybutów, metod, zasady przeciążania funkcji i operatorów, rozumie pojęcie funkcji wirtualnych - - - - - - - - - - -
Module content
Lectures:

1. Język C++ (powtórzenie podstawowych wiadomości związanych z programowaniem imperatywnym): typy danych, instrukcje sterujące, funkcje, wskaźniki, obsługa plików.
2. Wprowadzenie do obiektowych jezyków programowania
Pojęcie obiketu i klasy. Podstawowe relacje pomiędzy klasami w obiektowych językach programowania. Biblioteka wejścia- wyjścia.
Pojęcie: Asocjacja, agregacja, kompozycja, dziedziczenie, dziedziczenie wielobazowe. Przykłady w języku C++.
3. Klasy: składniki klasy, wskaźnik this, konstruktory, destruktory.
Kolejność wywołąnia konstruktorów i destruktorów. Przeciążanie funkcji i operatorów. Standardowe argumenty. Przeciążanie operatorów na przykładzie klasy String. Operator przypisania. Operatory przypisania i konstruktory kopiujące dla klas alokujących pamięć. Operator dostępu do składowych.
4. Dziedziczenie i funkcje wirtualne.
Kompozycja i dziedziczenie. Składnia kompozycji i dziedziczenia. Inicjalizacja atrybutów i obiektów klas bazowych. Specyfikacja dostępu. Dziedziczenie wielobazowe, dziedziczenie wirtualne.
Funkcje wirtualne. Implementacja funkcji wirtualnych. Przykłady. Czyste funkcje wirtualne, klasy abstrakcyjne. Specyfikacja interfejsu.
5. Obsługa wyjątków.
6. Podstawowe informacje o szablonach funkcji i szablonach klas. Wybrane szablony biblioteki standardowej STL: lista, wektor, stos, słownik, zbiór. Algorytmy i obiekty funkcyjne.
7. Biblioteka Qt i rozszerzenia języka C++. Przegląd wybranych klas. Przykłady implementacji aplikacji z interfejsem graficznym.
8. Omówienie wybranych obiektowych wzorców projektowych.

Laboratory classes:

1. Tworzenie klas zawierających konstruktor/destruktor.
2. Wykorzystywanie wskaźników do składników klas.
3. Stosowanie dziedziczenie i funkcji wirtualnych.
4. Obsługa wyjątków.
5. Tworzeni interfejsu użytkownika z użyciem wybranej biblioteki graficznej.
6. Obsługa wybranego interfejsu komunikacyjnego.
7. Tworzenie programu kontrolno/pomiarowego dla wybranego systemu wbudowanego z wykorzystaniem technik obiektowych.
8. Tworzenie aplikacji użytkownika z wykorzystaniem technik obiektowych współpracującej z systemem wbudowanym.

Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 86 h
Module ECTS credits 3 ECTS
Participation in lectures 28 h
Participation in laboratory classes 28 h
Preparation for classes 15 h
Realization of independently performed tasks 15 h
Additional information
Method of calculating the final grade:

W przypadku zaliczenia laboratoriów w pierwszym terminie, jako ocena końcowa przepisywana jest ocena z laboratorium. W przypadku zaliczenia laboratoriów w terminie poprawkowym, ocena końcowa wyznaczana jest jako średnia arytmetyczna z ocen z wszystkich dotychczasowych terminów, przy czym wystawiana jest ocena co najmniej 3,0.

Prerequisites and additional requirements:

Umiejętność programowania w języku C (typy danych, struktury sterujące, funkcje).
Znajomość podstawowych struktur danych i algorytmów na nich operujących.

Recommended literature and teaching resources:

1 Bjarne Stroustrup: Język C++ Kompendium wiedzy. Wydanie 4, Helion, 2013
2 Alan Ezust, Paul Ezust: C++ i Qt Wprowadzenie do wzorców projektowych. Wydanie 2, (Prentice Hall0 Helion, Gliwice 2012
3 Daniel Molkentin: The Book of Qt 4. The Art of Building Qt Applications, No Starch Press, 2008
4 Jasmin Blanchette, Mark Summerfield: C++ GUI Programming with Qt 4, Prentice Hall, 2006
5 Scott Meyers: Skuteczny nowoczesny C++. (O’Reilly) APN Promise, Warszawa 2015
6 http://www.cplusplus.com/reference
7 http://doc.qt.io/qt-5

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

Additional scientific publications not specified

Additional information:

None