Nazwa przedmiotu:
Zaawansowane C++
Koordynator przedmiotu:
dr Paweł Wnuk
Status przedmiotu:
Fakultatywny ograniczonego wyboru
Poziom kształcenia:
Studia II stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty kierunkowe
Kod przedmiotu:
ZCUZ
Semestr nominalny:
1 / rok ak. 2020/2021
Liczba punktów ECTS:
5
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
Praca z materiałami dydaktycznymi - podręcznikiem - 30 h, dalsze studia literaturowe - 10 h, przygotowanie projektu - 60 h, konsultacje projektu - 20 h, przygotowanie i uczestnictwo w egzaminie - 10 h. W sumie 130 h
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
Konsultacje projektu - 20 h, przygotowanie i uczestnictwo w egzaminie - 10 h. W sumie 30 h - 1 ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
Przygotowanie projektu - 60 h, konsultacje projektu - 20 h. W sumie 80 h, 3 ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia0h
  • Laboratorium0h
  • Projekt30h
  • Lekcje komputerowe0h
Wymagania wstępne:
Znajomość podstaw programowania strukturalnego i obiektowego. Znajomość treści zawartych w przedmiocie algorytmy i struktury danych. Podstawy składni C/C++
Limit liczby studentów:
30
Cel przedmiotu:
Nauka zaawansowanych technik programowania w języku C++, z aspektami programowania szablonowego.
Treści kształcenia:
Przedmiot zawiera kompletny opis składni i możliwości języka C++. Zaczyna się od krótkiego przedstawienia filozofii działania języka, typów danych na jakich operuje, i konstrukcji programistycznych. Opisany został proces kompilacji - działania preprocesora (makrodefinicje). W drugiej części przedstawiono zaawansowane aspekty programowania zorientowanego obiektowo: dziedziczenie i dziedziczenie wielokrotne, klasy abstrakcyjne, praktyczne zastosowania polimorfizmu oraz ochrony danych w celu implementacji typowych wzorców projektowych. Trzecia część jest poświęcona szablonom i bibliotece standardowej języka. Omówiono w niej podstawy tworzenia funkcji i klas parametryzowanych (szablonów). Przedstawiono typowe zastosowania. Pokazano główne kontenery i algorytmy biblioteki standardowej. Jako dodatek zaprezentowano techniki tworzenia systemów wtyczek, aplikacji wielowątkowych oraz sieciowych w języku C++.
Metody oceny:
Końcowa ocena przedmiotu składa się z: oceny projektu indywidualnego wykonywanego przez studenta: 50%, ocen z dwóch testów on-line: 20%, oraz oceny z testu egzaminacyjnego: 30%
Egzamin:
tak
Literatura:
"Zaawansowane C++" - podręcznik OKNO Bjarne Stroustrup, "Język C++" Victor Shtern "C++ Inżynieria oprogramowania" David Vandevoorde, Nicolai Josuttis, "C++ Szablony" Scott Meyers, "STL w praktyce"
Witryna www przedmiotu:
do uzupełnienia
Uwagi:
brak

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Charakterystyka ZCPP_w1
Znajomość pełnej składni C++
Weryfikacja: Testy on-line, test egzaminacyjny
Powiązane charakterystyki kierunkowe: K2_W03, K2_W04
Powiązane charakterystyki obszarowe: I.P7S_WG, III.P7S_WG.o, P7U_W, I.P7S_WG.o, III.P7S_WG
Charakterystyka ZCPP_W2
Zna podstawy biblioteki boost proponującej rozszerzenia standardu C++
Weryfikacja: Projekt - wymagane stosowanie STL oraz BOOST
Powiązane charakterystyki kierunkowe: K2_W04
Powiązane charakterystyki obszarowe: I.P7S_WG, P7U_W, I.P7S_WG.o
Charakterystyka ZCPP_W3
Zna sposób implementacji podstawowych wzorców projektowych w C++
Weryfikacja: Test egzaminacyjny
Powiązane charakterystyki kierunkowe: K2_W05
Powiązane charakterystyki obszarowe: I.P7S_WG, III.P7S_WG.o, P7U_W, I.P7S_WG.o, III.P7S_WG

Profil ogólnoakademicki - umiejętności

Charakterystyka ZCPP_U1
Ma umiejętność projektowania i implementowania niebanalnych aplikacji, korzystających z sieci komputerowych, wątków, lub wtyczek
Weryfikacja: Projekt
Powiązane charakterystyki kierunkowe: K2_U09
Powiązane charakterystyki obszarowe: I.P7S_UW, III.P7S_UW.3.o, P7U_U, I.P7S_UW.o, III.P7S_UW.o
Charakterystyka ZCPP_U2
Umie korzystać z dokumentacji bibliotek programistycznych oraz samego języka C++
Weryfikacja: Projekt
Powiązane charakterystyki kierunkowe: K2_U01
Powiązane charakterystyki obszarowe: I.P7S_UK, P7U_U

Profil ogólnoakademicki - kompetencje społeczne

Charakterystyka ZCPP_KS1
Rozumie proces ewolucji i wprowadzania zmian do języka C++
Weryfikacja: Testy egzaminacyjne, obrona projektu
Powiązane charakterystyki kierunkowe: K1_K01
Powiązane charakterystyki obszarowe: