(Średnio)zaawansowane programowanie w C++

Transkrypt

(Średnio)zaawansowane programowanie w C++
(Średnio)zaawansowane programowanie w C++ Regulamin
dr inż. Robert Nowak
Semestr 2007L
Harmonogram zajęć
Celem przedmiotu jest zapoznanie słuchaczy z zagadnieniami tworzenia oprogramowania 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Opis
Sprawy organizacyjne. Powtórzenie: iteracja i rekurencja, wskaźniki, klasy autonomiczne, cykl życia obiektów, składowe statyczne klas, przeciążania operatorów.
Agregacja i dziedziczenie, funkcje wirtualne, polimorfizm, klasy abstrakcyjne.
Laboratorium 1: funkcje wirtualne, hierarchia klas.
Wzorce projektowe.
Obsługa błędów, mechanizm wyjątków, zasoby, sprytne wskaźniki.
Laboratorium 2: wyjątki. Rozdanie zadań projektowych.
Rola projektowania i testowania, programowanie ekstremalne, repozytorium,
boost::test_unit i inne.
Szablony, wstęp do biblioteki standardowej, strumienie, kontenery, algorytmy.
Laboratorium 3: Biblioteka standardowa, obiekty funkcyjne, boost::bind, boost::lambda.
Laboratorium 4: Kolokwium.
Laboratorium 5: realizacja projektu
Laboratorium 6: realizacja projektu
Aplikacje wielowątkowe, synchronizacja, boost::thread.
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 4 21
71 – 80 pkt.
ocena 4
61 – 70 pkt.
ocena 3 21
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ȩzyk C++. Standardy kodowania. 101 zasad, wytycznych i zalecanych praktyk, Helion, 2005.
• B. Karlsson, Wiȩcej niż C++. Wprowadzenie do bibliotek Boost, Helion, 2006.
• S. Meyers, 50 efektywnych sposobów na udoskonalenie Twoich programów, Helion,
2003.