Zaawansowane CPP: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
(Nie pokazano 45 wersji utworzonych przez 7 użytkowników) | |||
Linia 7: | Linia 7: | ||
== Sylabus == | == Sylabus == | ||
=== Autor === | === Autor === | ||
* Piotr Białas | * Piotr Białas - Uniwersytet Jagielloński, Wydział Fizyki, Astronomii i Informatyki Stosowanej, | ||
* Wojciech Palacz - Uniwersytet Jagielloński, Wydział Fizyki, Astronomii i Informatyki Stosowanej, | |||
=== Wymagania wstępne === | === Wymagania wstępne === | ||
Linia 18: | Linia 19: | ||
***koncepty (STL) | ***koncepty (STL) | ||
***kontenery i algorytmy generyczne | ***kontenery i algorytmy generyczne | ||
***klasy cech i wytycznych | ***klasy cech i wytycznych, funcje typów | ||
**metaprogramowanie, szablony wyrażeń | **metaprogramowanie, szablony wyrażeń | ||
** | **Inteligentne wskaźniki | ||
**Funktory | |||
*Wyjątki. | *Wyjątki. | ||
**bezpieczna obsługa wyjątków | **bezpieczna obsługa wyjątków | ||
*Alokacja pamięci | *Alokacja pamięci | ||
**operator new, własne alokatory pamięci | **operator new, własne alokatory pamięci | ||
Linia 29: | Linia 30: | ||
**alokatory w STL | **alokatory w STL | ||
*Narzędzia programistyczne | *Narzędzia programistyczne | ||
**testowanie (CPPUnit) | **testowanie (CPPUnit) | ||
=== Literatura === | === Literatura === | ||
* | *D. Vandervoorde, N. Josuttis ''"C++ Szablony, Vademecum profesjonalisty"'', Helion S.A 2003. | ||
*Alexandrescu '' | *Alexandrescu ''"Nowoczesne projektowanie W C++"'', Wydawnictwa Naukowo-Techniczne 2005. | ||
* | *N. Josuttis ''"C++ Biblioteka Standardowa, podręcznik programisty"'', Wydawnictwo HELION 2003. | ||
*S. Meyers,''C++, 50 efektywnych sposobów na udoskonalenie Twoich programów'', 2003 | *B. Eckel, Ch. Allinson, ''"Thinking in C++"'' Edecja Polska, tom 2, Wydawnictwo HELION 2004. | ||
*S. Meyers, '' | |||
* | |||
* | |||
*Strona SGI http://www.sgi.com/tech/stl/ | |||
== Moduły == | |||
# [[Zaawansowane CPP/Wykład 1: Szablony I|Szablony I]] ([[Zaawansowane CPP/Ćwiczenia 1: Szablony I|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 2: Programowanie uogólnione|Programowanie uogólnione]] ([[Zaawansowane CPP/Ćwiczenia 2: Programowanie uogólnione|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 3: Szablony II|Szablony II]] ([[Zaawansowane CPP/Ćwiczenia 3: Szablony II|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 4: Testowanie|Testowanie]] ([[Zaawansowane CPP/Ćwiczenia 4: Testowanie|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 5: Klasy cech|Klasy cech]] ([[Zaawansowane CPP/Ćwiczenia 5: Klasy cech|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 6: Funkcje typów i inne sztuczki|Funkcje typów i inne sztuczki]] ([[Zaawansowane CPP/Ćwiczenia 6: Funkcje typów i inne sztuczki|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 7: Klasy wytycznych|Klasy wytycznych]] ([[Zaawansowane CPP/Ćwiczenia 7: Klasy wytycznych|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 8: Metaprogramowanie|Metaprogramowanie]] ([[Zaawansowane CPP/Ćwiczenia 8: Metaprogramowanie|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 9: Szablony wyrażeń|Szablony wyrażeń]] ([[Zaawansowane CPP/Ćwiczenia 9: Szablony wyrażeń|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 10: Inteligentne wskaźniki|Inteligentne wskaźniki]] ([[Zaawansowane CPP/Ćwiczenia 10: Inteligentne wskaźniki|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 11: Funktory|Funktory]] ([[Zaawansowane CPP/Ćwiczenia 11: Funktory|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 12: Używanie funktorów|Używanie funktorów]] ([[Zaawansowane CPP/Ćwiczenia 12: Używanie funktorów|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 13: Wyjątki|Wyjątki]] ([[Zaawansowane CPP/Ćwiczenia 13: Wyjątki|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 14: Zarządzanie pamięcią|Zarządzanie pamięcią]] ([[Zaawansowane CPP/Ćwiczenia 14: Zarządzanie pamięcią|ćwiczenia]]) | |||
# [[Zaawansowane CPP/Wykład 15: Wyjątkowo odporny kod|Wyjątkowo odporny kod]] ([[Zaawansowane CPP/Ćwiczenia 15: Wyjątkowo odporny kod|ćwiczenia]]) | |||
==Literatura uzupełniająca== | |||
*Stroustroup ''Jezyk C++'', Wydawnictwa Naukowo-Techniczne 2002. | |||
*S. Meyers,''C++, 50 efektywnych sposobów na udoskonalenie Twoich programów'', Wudawnictwo HELION 2003. | |||
*S. Meyers, ''Język C++ bardziej efektywny'', Wydawnictwa Naukowo-Techniczne 1998. | |||
*S. Meyers, ''STL w praktyce. 50 sposobów efektywnego wykorzystania'', Wydawnictwo HELION, 2004. | |||
*E. Gamma, R. Helm, R. Johnson, J. Vlissides, ''Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku'', | |||
Wydawnictwa Naukowo-Techniczne 2005 | |||
*Strona SGI http://www.sgi.com/tech/stl/ | |||
*Repozytorium Boost http://www.boost.org/ |
Aktualna wersja na dzień 22:04, 4 paź 2006
Forma zajęć
Wykład (30 godzin) + laboratorium (30 godzin)
Opis
Celem przedmiotu jest zapoznanie studentów z zaawansowanymi technikami programowania obiektowego w C++.
Sylabus
Autor
- Piotr Białas - Uniwersytet Jagielloński, Wydział Fizyki, Astronomii i Informatyki Stosowanej,
- Wojciech Palacz - Uniwersytet Jagielloński, Wydział Fizyki, Astronomii i Informatyki Stosowanej,
Wymagania wstępne
- Programowanie Obiektowe
- Znajomość C++
Zawartość
- Szablony (templates)
- programowanie generyczne
- koncepty (STL)
- kontenery i algorytmy generyczne
- klasy cech i wytycznych, funcje typów
- metaprogramowanie, szablony wyrażeń
- Inteligentne wskaźniki
- Funktory
- programowanie generyczne
- Wyjątki.
- bezpieczna obsługa wyjątków
- Alokacja pamięci
- operator new, własne alokatory pamięci
- obsługa błędów przydziału pamięci
- alokatory w STL
- Narzędzia programistyczne
- testowanie (CPPUnit)
Literatura
- D. Vandervoorde, N. Josuttis "C++ Szablony, Vademecum profesjonalisty", Helion S.A 2003.
- Alexandrescu "Nowoczesne projektowanie W C++", Wydawnictwa Naukowo-Techniczne 2005.
- N. Josuttis "C++ Biblioteka Standardowa, podręcznik programisty", Wydawnictwo HELION 2003.
- B. Eckel, Ch. Allinson, "Thinking in C++" Edecja Polska, tom 2, Wydawnictwo HELION 2004.
Moduły
- Szablony I (ćwiczenia)
- Programowanie uogólnione (ćwiczenia)
- Szablony II (ćwiczenia)
- Testowanie (ćwiczenia)
- Klasy cech (ćwiczenia)
- Funkcje typów i inne sztuczki (ćwiczenia)
- Klasy wytycznych (ćwiczenia)
- Metaprogramowanie (ćwiczenia)
- Szablony wyrażeń (ćwiczenia)
- Inteligentne wskaźniki (ćwiczenia)
- Funktory (ćwiczenia)
- Używanie funktorów (ćwiczenia)
- Wyjątki (ćwiczenia)
- Zarządzanie pamięcią (ćwiczenia)
- Wyjątkowo odporny kod (ćwiczenia)
Literatura uzupełniająca
- Stroustroup Jezyk C++, Wydawnictwa Naukowo-Techniczne 2002.
- S. Meyers,C++, 50 efektywnych sposobów na udoskonalenie Twoich programów, Wudawnictwo HELION 2003.
- S. Meyers, Język C++ bardziej efektywny, Wydawnictwa Naukowo-Techniczne 1998.
- S. Meyers, STL w praktyce. 50 sposobów efektywnego wykorzystania, Wydawnictwo HELION, 2004.
- E. Gamma, R. Helm, R. Johnson, J. Vlissides, Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku,
Wydawnictwa Naukowo-Techniczne 2005
- Strona SGI http://www.sgi.com/tech/stl/
- Repozytorium Boost http://www.boost.org/