SylabUZ

Generate PDF for this page

Object-Oriented Programming - course description

General information
Course name Object-Oriented Programming
Course ID 11.3-WI-INFP-PO
Faculty Faculty of Computer Science, Electrical Engineering and Automatics
Field of study Computer Science / Industrial Information Systems
Education profile academic
Level of studies First-cycle studies leading to Engineer's degree
Beginning semester winter term 2016/2017
Course information
Semester 2
ECTS credits to win 5
Course type obligatory
Teaching language polish
Author of syllabus
  • dr hab. inż. Paweł Majdzik, prof. UZ
Classes forms
The class form Hours per semester (full-time) Hours per week (full-time) Hours per semester (part-time) Hours per week (part-time) Form of assignment
Laboratory 30 2 18 1,2 Credit with grade
Lecture 30 2 18 1,2 Exam

Aim of the course

  • zapoznanie studentów z podstawowymi pojęciami programowania obiektowego: enkapsulacja, klasa, obiekt, metoda składowa
  • zapoznanie studentów z metodami hermetyzacji danych, funkcji i klas
  • ukształtowanie wśród studentów umiejętności projektowania programów obiektowych
  • zapoznanie studentów z metodami implementacji programów zorientowanych obiektowo: dziedziczenie, polimorfizm
  • ukształtowanie umiejętności projektowania programów z zastosowaniem wzorców projektowych

Prerequisites

Algorytmy i struktury danych, Podstawy programowania.

Scope

Wstęp do programowania obiektowego. Pojęcie abstrakcyjnego typu danych. Definicja klas. Enkapsulacja - deklaracja i definicja metod składowych klas. Przekazywanie parametrów do funkcji składowych: przez wartość i przez referencję.

Składowe prywatne i publiczne klasy. Przeciążenie funkcji. Konstruktory: konstruktor domniemany, konstruktor kopiujący.

Lista inicjalizacyjna konstruktora. Konstruktory syntezowane. Destruktory. Przeciążenie operatorów. Funkcje zaprzyjaźnione. Funkcje typu inline. Konwersje zdefiniowane przez użytkownika: funkcja konwertująca, konstruktor konwertujący.

Dziedziczenie. Zasady dziedziczenia. Składowe typu protected. Dziedziczenie wielokrotne i wielobazowe. Problem nazw zmiennych w dziedziczeniu wielobazowym.

Polimorfizm. Funkcje wirtualne. Funkcje czysto wirtualne. Wczesne i późne wiązanie funkcji. Koszty czasowe i pamięciowe związane ze stosowaniem polimorfizmu.

Klasy abstrakcyjne. Definiowanie i przykłady zastosowań klas abstrakcyjnych w programach zorientowanych obiektowo. Destruktory wirtualne.

Szablony funkcji. Definicja funkcji szablonowych.Funkcje specjalizowane. Etapy dopasowania do funkcji. Szablony klas. Definicja szablonów klas. Szablony

klas, a makrodefinicje. Składniki statyczne w szablonie klas. Dziedziczenie szablonów klas. Przykłady zastosowań szablonów klas. Klasy specjalizowane. Obsługa wyjątków.

Stosowanie wzorców z biblioteki STL - wzorce pojemnikowe, iteratory, pojemniki kojarzące (mapy, zbiory, itp.)

Teaching methods

wykład: wykład konwencjonalny

laboratorium: ćwiczenia laboratoryjne

Learning outcomes and methods of theirs verification

Outcome description Outcome symbols Methods of verification The class form

Assignment conditions

Wykład - warunkiem zaliczenia jest uzyskanie pozytywnej oceny ze sprawdzianu w formie pisemnej

Laboratorium - warunkiem zaliczenia jest uzyskanie pozytywnych ocen ze wszystkich sprawdzianów

Recommended reading

1. Eckel B.: Thinking in C++, Hellion, Warszawa, 2002.

2. Kerighan B., Ritchie D.: Programowanie w języku C, WNT, Warszawa, 2000.

3. Kisilewicz J.: Język. w środowisku Borland C++. Wydanie IV, Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2003.

4. Stroustrup B.: C++ Język programowania, WNT, Warszawa, 2001.

Further reading

1. Lippman S.B.: Model w C++, WNT, Warszawa, 1996.

2. Shalloway A., Trott J.R.: Projektowanie zorientowane obiektowo. Wzorce obiektowe II, Helion, Warszawa, 2005

Notes


Modified by prof. dr hab. inż. Krzysztof Patan (last modification: 15-09-2016 16:59)