Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Podstawy programowania obiektowego
Tok studiów:
2017/2018
Kod:
EME-1-405-s
Wydział:
Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Mikroelektronika w technice i medycynie
Semestr:
4
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
Rogus Grzegorz (rogus@agh.edu.pl)
Osoby prowadzące:
Rogus Grzegorz (rogus@agh.edu.pl)
Żołądź Mirosław (zoladz@agh.edu.pl)
dr inż. Otfinowski Piotr (potfin@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 Ma podstawową wiedzę o klasach (konstruktory, destruktory, wskaźniki, referencje) ME1A_W08, ME1A_W07 Zaliczenie laboratorium
M_W002 Ma podstawową wiedzę o dziedziczeniu i funkcjach wirtualnych ME1A_W08, ME1A_W07 Zaliczenie laboratorium
M_W003 Ma podstawową wiedzę o obsłudze wyjątków ME1A_W08, ME1A_W07 Zaliczenie laboratorium
M_W004 Ma podstawową wiedzę o tworzeniu aplikacji obiektowych w wybranym środowisku programistycznym ME1A_W08, ME1A_W07 Zaliczenie laboratorium
M_W005 Ma podstawową wiedzę o tworzeniu interfejsu użytkownika z użyciem wybranej obiektowej biblioteki graficznej ME1A_W08, ME1A_W07 Zaliczenie laboratorium
M_W006 Ma podstawową wiedzę o obsłudze wybranego interfejsu komunikacyjnego ME1A_W08, ME1A_W07 Zaliczenie laboratorium
M_W007 Ma podstawową wiedzę o kwestiach specyficznych dla programowania obiektowego w systemach wbudowanych ME1A_W08, ME1A_W07 Zaliczenie laboratorium
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 Zaliczenie laboratorium
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 Zaliczenie laboratorium
Umiejętności
M_U001 Potrafi w podstawowym zakresie budować klasy zawierające konstruktor/destruktor ME1A_U22 Zaliczenie laboratorium
M_U002 Potrafi w podstawowym zakresie wykorzystywać wskaźniki do składników klas ME1A_U22 Zaliczenie laboratorium
M_U003 Potrafi w podstawowym zakresie wykorzystywać dziedziczenie i funkcje wirtualne ME1A_U22 Zaliczenie laboratorium
M_U004 Potrafi w podstawowym zakresie obsługiwać wyjątki ME1A_U22 Zaliczenie laboratorium
M_U005 Potrafi w podstawowym zakresie tworzyć aplikacje obiektowe w wybranym środowisku programistycznym ME1A_U22 Zaliczenie laboratorium
M_U006 Potrafi w podstawowym zakresie tworzyć interfejs użytkownika z użyciem wybranej biblioteki graficznej ME1A_U22 Zaliczenie laboratorium
M_U007 Potrafi w podstawowym zakresie obsługiwać wybrane interfejsy komunikacyjne ME1A_U22 Zaliczenie laboratorium
M_U008 potrafi napisać prosty program w języku C łącząc go z elementami biblioteki standardowej ME1A_U22 Zaliczenie laboratorium
M_U009 potrafi napisać prosty program w języku C z wykorzystaniem paradygmatów programowania obiektowego ME1A_U22 Zaliczenie laboratorium
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 Zaliczenie laboratorium
M_U088 Potrafi w podstawowym zakresie tworzyć programy obiektowe dla systemów wbudowanych ME1A_U22 Zaliczenie laboratorium
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 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 - - - - - - - - - - -
Umiejętności
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 - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

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.

Ćwiczenia laboratoryjne:

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.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 86 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 28 godz
Udział w ćwiczeniach laboratoryjnych 28 godz
Przygotowanie do zajęć 15 godz
Samodzielne studiowanie tematyki zajęć 15 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

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.

Wymagania wstępne i dodatkowe:

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

Zalecana literatura i pomoce naukowe:

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

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

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak