(Średnio)zaawansowane programowanie w C++ - Regulamin
dr inż. Robert Nowak Semestr 2007L
Harmonogram zajęć
Celem przedmiotu jest zapoznanie słuchaczy z zagadnieniami tworzenia oprogramowa- nia w języku C++, w oparciu o współcześnie stosowane techniki i biblioteki. Zakładana jest znajomość programowania strukturalnego i obiektowego oraz praktyczna znajomość języka C++.
Nr Opis
1 Sprawy organizacyjne. Powtórzenie: iteracja i rekurencja, wskaźniki, klasy au- tonomiczne, cykl życia obiektów, składowe statyczne klas, przeciążania opera- torów.
2 Agregacja i dziedziczenie, funkcje wirtualne, polimorfizm, klasy abstrakcyjne.
3 Laboratorium 1: funkcje wirtualne, hierarchia klas.
4 Wzorce projektowe.
5 Obsługa błędów, mechanizm wyjątków, zasoby, sprytne wskaźniki.
6 Laboratorium 2: wyjątki. Rozdanie zadań projektowych.
7 Rola projektowania i testowania, programowanie ekstremalne, repozytorium, boost::test_unit i inne.
8 Szablony, wstęp do biblioteki standardowej, strumienie, kontenery, algorytmy.
9 Laboratorium 3: Biblioteka standardowa, obiekty funkcyjne, boost::bind, bo- ost::lambda.
10 Laboratorium 4: Kolokwium.
11 Laboratorium 5: realizacja projektu 12 Laboratorium 6: realizacja projektu
13 Aplikacje wielowątkowe, synchronizacja, boost::thread.
14 Laboratorium 7: aplikacje wielowątkowe.
Zaliczenie
Przedmiot jest oceniany na podstawie:
kolokwium 0 – 30pkt
ćwiczeń laboratoryjnych 0 – 40pkt
projektów 0 – 30pkt
Ocena jest następująca:
91 – 100 punktów ocena 5 81 – 90 pkt. ocena 412 71 – 80 pkt. ocena 4 61 – 70 pkt. ocena 312 51 – 60 pkt. ocena 3 0 – 50 pkt. ocena 2
Literatura
• Bjarne Stroustrup, Język C++, WNT 2002.
• Bruce Eckel, Thinking in C++, Helion 2002.
• E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Wzorce projektowe, WNT, 2005.
• A. Alexandrescu, Nowoczesne projektowanie w C++, WNT, 2005.
• A. Alexandrescu and H. Sutter, J¸ezyk C++. Standardy kodowania. 101 zasad, wy- tycznych i zalecanych praktyk, Helion, 2005.
• B. Karlsson, Wi¸ecej niż C++. Wprowadzenie do bibliotek Boost, Helion, 2006.
• S. Meyers, 50 efektywnych sposobów na udoskonalenie Twoich programów, Helion, 2003.