Politechnika Warszawska - Centralny System Uwierzytelniania
Nie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Zaawansowane programowanie w C++

Informacje ogólne

Kod przedmiotu: 103A-INxxx-ISP-ZPR Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Zaawansowane programowanie w C++
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Metody programowania )-Informatyka-inż.-EITI
( Przedmioty obieralne )-Automatyka i robotyka-inż.-EITI
( Przedmioty podstawowe )-Inżynieria systemów informatycznych-mgr.-EITI
( Przedmioty techniczne )---EITI
Punkty ECTS i inne: 4.00
Język prowadzenia: polski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

ZPR

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zapoznanie słuchaczy z zagadnieniami tworzenia oprogramowania w języku C++, w oparciu o współcześnie stosowane techniki i biblioteki. Wykład omawia zagadnienia istotne przy tworzeniu złożonych aplikacji i jest rozwinięciem programowania obiektowego. W szczególności omawia się wzorce projektowe, programowanie generyczne i uogólnione, zarządzanie zasobami przy uwzględnieniu obsługi błędów przez mechanizm wyjątków, a także programowanie wielowątkowe. Omawiane są udogodnienia oferowane przez bibliotekę standardową oraz przez biblioteki Boost, pozwalające na wydajną implementację aplikacji niezależnych od platformy. Zadanie projektowe pozwala zastosować omawiane koncepcje w praktyce, a także pozwala zapoznać się z metodami pracy zespołowej. Zakładana jest znajomość programowania strukturalnego i obiektowego oraz praktyczna znajomość języka C++.

Pełny opis:

Celem przedmiotu jest zapoznanie słuchaczy z zagadnieniami tworzenia oprogramowania w języku C++, w oparciu o współcześnie stosowane techniki i biblioteki. Wykład omawia zagadnienia istotne przy tworzeniu złożonych aplikacji i jest rozwinięciem programowania obiektowego. W szczególności omawia się wzorce projektowe, programowanie generyczne i uogólnione, zarządzanie zasobami przy uwzględnieniu obsługi błędów przez mechanizm wyjątków, a także programowanie wielowątkowe. Omawiane są udogodnienia oferowane przez bibliotekę standardową oraz przez biblioteki Boost, pozwalające na wydajną implementację aplikacji niezależnych od platformy.
Zadanie projektowe pozwala zastosować omawiane koncepcje w praktyce, a także pozwala zapoznać się z metodami pracy zespołowej.
Zakładana jest znajomość programowania strukturalnego i obiektowego oraz praktyczna znajomość języka C++.


Treść wykładu

  • krótki (hasłowy) przegląd C++ jako języka wspierającego
    programowanie strukturalne, obiektowe i generyczne.

  • wzorce projektowe (fabryki, prototyp, singleton, adapter,
    kompozyt, dekorator, fasada, proxy, komenda, iterator, obserwator,
    wizytator, wielometoda)

  • zarządzanie zasobami przy uwzględnieniu mechanizmu wyjątków,
    sprytne wskaźniki

  • aplikacje wielowątkowe, synchronizacja, aktywny obiekt,
    asynchroniczna obsługa urządzeń wejścia-wyjścia

  • programowanie generyczne, metaprogramowanie, klasy cech, klasy
    wytycznych i in.

  • elementy inżynierii oprogramowania: rola projektowania i
    testowania, omówienie podstawowych narzędzi, m.in. repozytorium,
    biblioteki do tworzenia testów jednostkowych

  • organizacja biblioteki standardowej, obiekty funkcyjne, bind,
    lambda

  • biblioteki boost, kontenery (grafy, tablice wielowymiarowe),
    przetwarzanie tekstu, wyrażenia regularne, lokalizm

  • łączenie kodu tworzonego w C++ i w innych językach programowania,
    biblioteka boost::python


Zakres projektu
Zadanie praktyczne polegać będzie na wykonaniu projektu, a następnie implementacji wybranego zagadnienia w C++, wykorzystując omawianie techniki: bibliotekę standardową, wzorce projektowe i wielowątkowość. Projekty będą wykonywane w zespołach dwuosobowych, przy użyciu narzędzi wspierających tego typu prace.

Poprzedniki
Typ poprzednikaNr poprzednikaKod poprzednikaNazwa poprzednika
Wymagany1103A-INxxx-ISP-PROIProgramowanie obiektowe
Wymagany1103A-INxxx-ISP-EOOPObject-Oriented Programming
Wymagany1103A-CTxxx-ISA-EPRO3Programming 3
Wymagany1103A-TExxx-ISP-PROEProgramowanie obiektowe

Literatura:

    1. A. Alexandrescu. Nowoczesne projektowanie w C++. WNT, 2005.

    2. A. Alexandrescu and H. Sutter. Je,zyk C++. Standardy kodowania.
      101 zasad, wytycznych i zalecanych praktyk. Helion, 2005.

    3. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Wzorce
      projektowe. WNT, 2005.

    4. S. Meyers. 50 efektywnych sposobów na udoskonalenie Twoich
      programów. HELION, 2003.

    5. R. Nowak and A. Pająk. Język C++: mechanizmy, wzorce, biblioteki.
      BTC, 2010.

    6. B. Stroustrup. Język C++. WNT, 2002.

    7. B. Stroustrup. Programowanie. Teoria i praktyka z wykorzystaniem
      C++. Helion, 2010.

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

Okres: 2020-10-01 - 2021-02-12
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 45 miejsc więcej informacji
Wykład, 30 godzin, 45 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Rafał Biedrzycki, Konrad Grochowski, Robert Nowak
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:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Rafał Biedrzycki, Konrad Grochowski, Robert Nowak
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:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Rafał Biedrzycki, Konrad Grochowski, Robert Nowak
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:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Rafał Biedrzycki, Konrad Grochowski, Robert Nowak
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:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Rafał Biedrzycki, Konrad Grochowski, Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2018-02-19 - 2018-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Rafał Biedrzycki, Konrad Grochowski, Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2017-10-01 - 2018-02-18
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2017-02-20 - 2017-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 77 miejsc więcej informacji
Wykład, 30 godzin, 77 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2016-10-01 - 2017-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2016-02-23 - 2016-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 64 miejsc więcej informacji
Wykład, 30 godzin, 64 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2015-10-01 - 2016-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2015-02-23 - 2015-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2014-09-29 - 2015-02-22
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2014-02-24 - 2014-09-28
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2013-10-01 - 2014-02-23
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 64 miejsc więcej informacji
Wykład, 30 godzin, 64 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2013-02-20 - 2013-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 65 miejsc więcej informacji
Wykład, 30 godzin, 65 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

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

Okres: 2012-10-01 - 2013-02-19
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Projekt, 15 godzin, 60 miejsc więcej informacji
Wykład, 30 godzin, 60 miejsc więcej informacji
Koordynatorzy: Robert Nowak
Prowadzący grup: Robert Nowak
Lista studentów: (nie masz dostępu)
Zaliczenie: Ocena łączna
Jednostka realizująca:

103300 - Instytut Systemów Elektronicznych

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.