Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Object-Oriented Programming

Informacje ogólne

Kod przedmiotu: 103A-INxxx-ISP-EOOP
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Object-Oriented Programming
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Algorithms and Programming )-Computer Science, Telecommunications-B.Sc.-EITI
( Algorytmy i techniki programowania )-Elektronika, Telekomunikacja-inż.-EITI
( Courses in English )--eng.-EITI
( Metody programowania )-Informatyka-inż.-EITI
( Przedmioty podstawowe )-Inżynieria systemów informatycznych-mgr.-EITI
( Przedmioty techniczne )---EITI
( Technical Courses )--eng.-EITI
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: angielski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

EOOP

Numer wersji:

1

Skrócony opis:

Wykład przedstawia programowanie obiektowe w języku C++ i zapoznaje studentów z projektowaniem obiektowym oraz abstrahowaniem danych, interfejsem klasy i implementacją. Dziedziczenie, polimorfizm, funkcje wirtualne i abstrakcyjne są prezentowane w kontekście projektowania zstępującego. Przeciążanie operatorów oraz szablony służą ujednoliceniu oprogramowania. Obsługa wyjątków jest współczesnym mechanizmem wychwytywania i reagowania na sytuacje błędne. Omówienie biblioteki standardowej ma na celu zwiększenie wydajności tworzenia oprogramowania.

Pełny opis:

Wykład przedstawia programowanie obiektowe w języku C++ i zapoznaje studentów z projektowaniem obiektowym oraz abstrahowaniem danych, interfejsem klasy i implementacją. Dziedziczenie, polimorfizm, funkcje wirtualne i abstrakcyjne są prezentowane w kontekście projektowania zstępującego. Przeciążanie operatorów oraz szablony służą ujednoliceniu oprogramowania. Obsługa wyjątków jest współczesnym mechanizmem wychwytywania i reagowania na sytuacje błędne. Omówienie biblioteki standardowej ma na celu zwiększenie wydajności tworzenia oprogramowania.

Treść wykładu

  1. Introduction (4h): the C/C++ language elements, basic data types, literals, references, casting, operator summary, statement summary.

  2. Functions and Files (4h): linkage, header files, static and
    automatic variables, initialization of variables, default values of
    function parameters, function overloading, namespaces.

  3. Classes (6h): classes and members, access control, interfaces and
    implementation, encapsulation, friends, name qualification, static
    members, constructors and destructors, initialization list, copy
    constructor, object-oriented programming.

  4. Derived Classes (6h): inheritance, virtual functions,
    polymorphism, pure virtual functions, abstract classes, multiple
    inheritance, dynamic data structures, dynamic binding, run-time type
    inspection.

  5. Operator Overloading (2h): operator functions, assignment and
    initialization, increment and decrement, friends and members.

  6. Templates (2h): class template, function template.

  7. Exception Handling (2h): error handling, throwing and catching
    exceptions, try block, catch blocks, discrimination of exceptions,
    naming of exceptions, uncaught exceptions.

  8. Input/Output Functions (2h): streams, formatting, files.

  9. Standard Libraries (2h): STL, containers, algorithms, iterators.

Zakres laboratorium

  • Five preliminary simple tasks:
    • Pointers.
    • References.
    • Classes and objects: constructors and destructors.
    • Operators 1.
    • Operators 2.
  • A small project requiring design of simplified simulation of an institution (e.g. bank, university, hospital). Implementation of several cooperating classes is expected as well as testing scenarios.


Poprzedniki

Typ poprzednikaNr poprzednikaKod poprzednikaNazwa poprzednika
Wymagany1103A-CTxxx-ISA-EPFUProgramming Fundamentals


Przedmioty podobne
Kod przedmiotuNazwa przedmiotuDyskonto ECTS
103A-INxxx-ISP-PROIProgramowanie obiektowe5
103A-TExxx-ISP-PROEProgramowanie obiektowe5

Literatura:

    1. H. Schildt, C++: The Complete Reference, Fourth Edition,
      McGraw-Hill, 2003.

    2. B. Eckel, Thinking in C++: Introduction to Standard C++, Volume
      One (2nd Edition), Prentice Hall Inc., 2000.

    3. B. Eckel, Ch. Allison, Thinking in C++, Volume 2: Practical
      Programming, Prentice Hall, 2003.

    4. B. Stroustrup, The C++ Programming Language, 3rd Edition,
      Addison-Wesley, 1998.

    5. I. Pohl, C++ for C Programmers, Addison-Wesley, 1998.

Metody i kryteria oceniania:

During the lab exercises it is possible to score up to 40 points:


  • 15 points for first five exercises (5*3)

  • 25 points for the project

  • 8 points for the Preliminary Project (PP)

  • 9 points for the Code in C++ (CC)

  • 8 points for the Final Project (FP)


Maximum score for the mid-term test is 20 points and for final test is
40 points. There are also up to 10 short tests (during lectures), each
one for 1 point.

The final result is based on the following pattern:


  • A: 91-110 points

  • B+: 81-90 points

  • B: 71-80 points

  • C+: 61-70 points

  • C: 51-60 points

  • D: 0 -50 points

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. letni" (w trakcie)

Okres: 2024-02-19 - 2024-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Rajmund Kożuszek, Tomasz Martyn, Roman Podraza, Zbigniew Szymański, Dariusz Turlej
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. zimowy" (zakończony)

Okres: 2023-10-01 - 2024-02-18
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 24 miejsc więcej informacji
Wykład, 30 godzin, 24 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Roman Podraza, Zbigniew Szymański
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. letni" (zakończony)

Okres: 2023-02-20 - 2023-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 96 miejsc więcej informacji
Wykład, 30 godzin, 96 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Rajmund Kożuszek, Tomasz Martyn, Roman Podraza, Janusz Rzeszut, Dariusz Turlej
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. zimowy" (zakończony)

Okres: 2022-10-01 - 2023-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 24 miejsc więcej informacji
Wykład, 30 godzin, 24 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Owais Mujtaba Khanday, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. letni" (zakończony)

Okres: 2022-02-23 - 2022-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 96 miejsc więcej informacji
Wykład, 30 godzin, 96 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Owais Mujtaba Khanday, Rajmund Kożuszek, Tomasz Martyn, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. zimowy" (zakończony)

Okres: 2021-10-01 - 2022-02-22
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 36 miejsc więcej informacji
Wykład, 30 godzin, 36 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Michał Chwesiuk, Rajmund Kożuszek, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. letni" (zakończony)

Okres: 2021-02-20 - 2021-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 90 miejsc więcej informacji
Wykład, 30 godzin, 90 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Rajmund Kożuszek, Tomasz Martyn, Robert Nowak, Roman Podraza, Zbigniew Szymański
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. zimowy" (zakończony)

Okres: 2020-10-01 - 2021-02-19
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Rajmund Kożuszek, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2019/2020 - sem. letni" (zakończony)

Okres: 2020-02-22 - 2020-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 70 miejsc więcej informacji
Wykład, 30 godzin, 70 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Tomasz Gambin, Rajmund Kożuszek, Tomasz Martyn, Łukasz Neumann, Robert Nowak, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2019/2020 - sem. zimowy" (zakończony)

Okres: 2019-10-01 - 2020-02-21
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Anna Derezińska, Tomasz Gambin, Tomasz Martyn, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2018/2019 - sem. letni" (zakończony)

Okres: 2019-02-18 - 2019-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 70 miejsc więcej informacji
Wykład, 30 godzin, 70 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Łukasz Dąbała, Anna Derezińska, Tomasz Gambin, Rajmund Kożuszek, Tomasz Martyn, Łukasz Neumann, Roman Podraza
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2018/2019 - sem. zimowy" (zakończony)

Okres: 2018-10-01 - 2019-02-17
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Laboratorium, 30 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Roman Podraza
Prowadzący grup: Łukasz Dąbała, Anna Derezińska, Tomasz Gambin, Roman Podraza, Piotr Wąsiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-7 (2024-03-18)