- 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. 2016/2017
- 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
- Efekt ZCPP_w1
- Znajomość pełnej składni C++
Weryfikacja: Testy on-line, test egzaminacyjny
Powiązane efekty kierunkowe:
K2_W03, K2_W04
Powiązane efekty obszarowe:
T2A_W04, T2A_W05
- Efekt ZCPP_W2
- Zna podstawy biblioteki boost proponującej rozszerzenia standardu C++
Weryfikacja: Projekt - wymagane stosowanie STL oraz BOOST
Powiązane efekty kierunkowe:
K2_W04
Powiązane efekty obszarowe:
T2A_W05
- Efekt ZCPP_W3
- Zna sposób implementacji podstawowych wzorców projektowych w C++
Weryfikacja: Test egzaminacyjny
Powiązane efekty kierunkowe:
K2_W05
Powiązane efekty obszarowe:
T2A_W04
Profil ogólnoakademicki - umiejętności
- Efekt ZCPP_U1
- Ma umiejętność projektowania i implementowania niebanalnych aplikacji, korzystających z sieci komputerowych, wątków, lub wtyczek
Weryfikacja: Projekt
Powiązane efekty kierunkowe:
K2_U09
Powiązane efekty obszarowe:
T2A_U12
- Efekt ZCPP_U2
- Umie korzystać z dokumentacji bibliotek programistycznych oraz samego języka C++
Weryfikacja: Projekt
Powiązane efekty kierunkowe:
K2_U01
Powiązane efekty obszarowe:
T2A_U01
Profil ogólnoakademicki - kompetencje społeczne
- Efekt ZCPP_KS1
- Rozumie proces ewolucji i wprowadzania zmian do języka C++
Weryfikacja: Testy egzaminacyjne, obrona projektu
Powiązane efekty kierunkowe:
K1_K01
Powiązane efekty obszarowe:
T2A_K01