Warsaw University of Technology - Central Authentication SystemYou are not logged in | log in
course directory - help

Object-Oriented Programming

General data

Course ID: 103A-INxxx-ISP-PROI Erasmus code / ISCED: (unknown) / (unknown)
Course title: Object-Oriented Programming Name in Polish: Programowanie obiektowe
Department: The Faculty of Electronics and Information Technology
Course groups: ( Computer Science )-Automatic Control and Robotics-B.Sc.-EITI
( Fundamentals )-Computer Information System Engineering-M.Sc.-EITI
( Programming Methods )-Computer Science-B.Sc.-EITI
( Technical Courses )---EITI
ECTS credit allocation (and other scores): 5.00
Language: Polish
(in Polish) Jednostka decyzyjna:

(in Polish) 103000 - Wydział Elektroniki i Technik Informacyjnych

(in Polish) Kod wydziałowy:

(in Polish) PROI

(in Polish) Numer wersji:

(in Polish) 1

Short description:

Basic concepts of object-oriented and generic programming paradigms are introduced using facilities of the C++ language and its standard library. Practical aspects of solving programming problems using the methodologies are stressed during lab work.

Full description: (in Polish)

Przedmiot jest wprowadzeniem do metodyki programowania obiektowego i rodzajowego z wykorzystaniem mechanizmów języka C++.



Treść wykładu
Ewolucja metod programowania: Programowanie proceduralne, sterowane danymi, modularne. Zasada ukrywania szczegółów, abstrakcyjne typy danych. Pojęcia podstawowe programowania obiektowego, obiekty, klasy, dziedziczenie, polimorfizm; struktury dziedziczenia. Informacje
wprowadzające o programowaniu rodzajowym. Przykład migracji rozwiązania
problemu od wersji proceduralnej do rodzajowej.



Mechanizmy pomocnicze języka C++: Przegląd systemu typów, typ
referencyjny; podstawy współpracy z WE/WY strumieniowym. Przeciążenia
funkcji i operatorów (polimorfizm statyczny), prototypy funkcji, listy
parametrów formalnych, parametry predefiniowane; funkcje rozwijane.
Tworzenie obiektów dynamicznych, operatory new, new [], delete, delete
[]. Zakresy interpretacji nazw, przestrzenie nazw, operator `::`.



Klasy autonomiczne: Definiowanie klas samodzielnych, składowe klasy, składowe bierne i cznne, kontrola dostępu; zaprzyjaźnienia.
Konstruktory i destruktory. Różnice pomiędzy klasami z wyróżnikiem
class, struct i union. Projektowanie klas autonomicznych, klasa
Fraction. Składowe statyczne. Klasy ze zmienną strukturą wewnętrzną,
postać kanoniczna. Klasy zagnieżdżone, zastosowanie.



Szablony i podstawy programowania rodzajowego: Klasy parametryczne. Definiowanie szablonów klas i funkcji, parametryzacja szablonów. Specjalizacje szablonów. Funkcje składowe szablonowe. Zasady
programowania rodzajowego.



Dziedziczenie i polimorfizm: Dziedziczenie bezpośrednie, pośrednie, pojedyńcze, wielobazowe. Klasy bazowe wirtualne. Dziedziczenie a zawieranie. Polimorfizm dynamiczny, funkcje wirtualne, mechanizm aktywacji funkcji wirtualnych; obiekty polimorficzne. Funkcje wirtualne czyste, klasy abstrakcyjne i interfejsy. Szablony w dziedziczeniu. Model obiektu w C++. Tworzenie i destrukcja obiektów polimorficznych.



Obsługa sytuacji wyjątkowych: Mechanizm reagowania na sytuacje
wyjątkowe, składnia i semantyka bloku try i bloków obsługi catch,
aktywowanie wyjątku przez throw. Funkcje standardowe terminate(),
unexpected (), set_terminate (), set_unexpected (). Zasady
projektowania programów bezpiecznych, klasa szablonowa auto_ptr.
Wyjątki standardowe.



Polimorfizm i RTTI: Mechanizmy C++ do identyfikacji typów w czasie wykonania programu. Kontrolowane konwersje polimorficzne, zastosowania operatorów dynamic_cast i typeid; wyjątek bad_cast.



Biblioteka standardowa C++: Podstawowe akcesoria biblioteki -
kontenery, iteratory i algorytmy. Klasyfikacja usług biblioteki
standardowej; przegląd kontenerów sekwencyjnych i asocjacyjnych.
Wsparcie dla współpracy ze strumieniami i przetwarzania tekstów.


Zakres laboratorium
Studenci opracowują programy uwzględniające istotne aspekty programowania obiektowego. Problemy do rozwiązania obejmują: projektowanie klas autonomicznych, przeciążenie funkcji i operatorów, projektowanie klas ze zmienną strukturą obiektów, wykorzystanie reprezentacji grupowej obiektów, definiowanie szablonów klas i funkcji, wykorzystanie dziedziczenia i funkcji wirtualnych, obsługę sytuacji wyjątkowych, współpracę ze strumieniami, projektowanie klas kontenerowych i iteratorów a także wykorzystanie akcesoriów biblioteki standardowej.



Przedmioty podobne

Kod przedmiotuNazwa przedmiotuDyskonto ECTS
103A-CTxxx-ISA-EPRO3Programming 35
103A-TExxx-ISP-PROEProgramowanie obiektowe5
103A-INxxx-ISP-EOOPObject-Oriented Programming5

Bibliography: (in Polish)

    1. B. Stroustrup: Język C++, WNT, 2000, 2002.

    2. S. B. Lippman: Podstawy języka C++, WNT 2001, 2003.

    3. S. B. Lippman: Istota języka C++, WNT, 2004.

    4. A. Koenig, B. Moo: C++ : Potęga języka, Helion, 2004.

Classes in period "Winter Semester 2019/2020" (past)

Time span: 2019-10-01 - 2020-02-21
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 120 places more information
lectures, 30 hours, 120 places more information
Coordinators: Tomasz Śliwiński, Izabela Żółtowska
Group instructors: Tomasz Śliwiński, Izabela Żółtowska
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2018/2019" (past)

Time span: 2019-02-18 - 2019-09-30
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 150 places more information
lectures, 30 hours, 150 places more information
Coordinators: Krzysztof Gracki
Group instructors: Rafał Biedrzycki, Krzysztof Gracki, Wiktor Kuśmirek, Marta Łępicka, Agnieszka Malanowska, Mateusz Modrzejewski, Witold Oleszkiewicz, Aleksandra Paśnikowska, Mateusz Słowikowski
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2018/2019" (past)

Time span: 2018-10-01 - 2019-02-17
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 120 places more information
lectures, 30 hours, 120 places more information
Coordinators: Tomasz Śliwiński, Izabela Żółtowska
Group instructors: Paweł Bortnowski, Tomasz Śliwiński, Izabela Żółtowska
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2017/2018" (past)

Time span: 2018-02-19 - 2018-09-30
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 150 places more information
lectures, 30 hours, 150 places more information
Coordinators: Krzysztof Gracki
Group instructors: Rafał Biedrzycki, Łukasz Dąbała, Krzysztof Gracki, Katarzyna Kosowska, Kazimierz Krosman, Wiktor Kuśmirek, Agnieszka Malanowska, Mateusz Modrzejewski, Witold Oleszkiewicz, Aleksandra Paśnikowska, Mateusz Słowikowski
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2017/2018" (past)

Time span: 2017-10-01 - 2018-02-18
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 120 places more information
lectures, 30 hours, 120 places more information
Coordinators: Tomasz Śliwiński
Group instructors: Tomasz Śliwiński
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2016/2017" (past)

Time span: 2017-02-20 - 2017-09-30
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 166 places more information
lectures, 30 hours, 166 places more information
Coordinators: Krzysztof Gracki
Group instructors: Krzysztof Gracki
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2016/2017" (past)

Time span: 2016-10-01 - 2017-02-19
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 90 places more information
lectures, 30 hours, 90 places more information
Coordinators: Tomasz Śliwiński
Group instructors: Tomasz Śliwiński
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2015/2016" (past)

Time span: 2016-02-23 - 2016-09-30
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 165 places more information
lectures, 30 hours, 165 places more information
Coordinators: Krzysztof Gracki
Group instructors: Krzysztof Gracki
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2015/2016" (past)

Time span: 2015-10-01 - 2016-02-22
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 120 places more information
lectures, 30 hours, 120 places more information
Coordinators: Tomasz Śliwiński
Group instructors: Tomasz Śliwiński
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2014/2015" (past)

Time span: 2015-02-23 - 2015-09-30
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 160 places more information
lectures, 30 hours, 160 places more information
Coordinators: Andrzej Pająk
Group instructors: Andrzej Pająk
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2014/2015" (past)

Time span: 2014-09-29 - 2015-02-22
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 120 places more information
lectures, 30 hours, 120 places more information
Coordinators: Tomasz Śliwiński
Group instructors: Tomasz Śliwiński
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2013/2014" (past)

Time span: 2014-02-24 - 2014-09-28
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 148 places more information
lectures, 30 hours, 148 places more information
Coordinators: Andrzej Pająk
Group instructors: Andrzej Pająk
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2013/2014" (past)

Time span: 2013-10-01 - 2014-02-23
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 100 places more information
lectures, 30 hours, 100 places more information
Coordinators: Michał Warchoł
Group instructors: Michał Warchoł
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Classes in period "Summer Semester 2012/2013" (past)

Time span: 2013-02-20 - 2013-09-30
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 120 places more information
lectures, 30 hours, 120 places more information
Coordinators: Andrzej Pająk
Group instructors: Andrzej Pająk
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103200 - Instytut Informatyki

Classes in period "Winter Semester 2012/2013" (past)

Time span: 2012-10-01 - 2013-02-19
Choosen plan division:


magnify
see course schedule
Type of class: laboratory, 30 hours, 80 places more information
lectures, 30 hours, 80 places more information
Coordinators: Michał Warchoł
Group instructors: Michał Warchoł
Students list: (inaccessible to you)
Examination: Overall grade
(in Polish) Jednostka realizująca:

(in Polish) 103100 - Instytut Automatyki i Informatyki Stosowanej

Course descriptions are protected by copyright.
Copyright by Warsaw University of Technology.