Zaawansowane CPP: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Matiunreal (dyskusja | edycje)
Nie podano opisu zmian
Pbialas (dyskusja | edycje)
 
(Nie pokazano 43 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ń
**zastosowanie szablonów do implementacji podstawowych wzorców obiektowych
**Inteligentne wskaźniki
**Funktory
*Wyjątki.  
*Wyjątki.  
**bezpieczna obsługa wyjątków
**bezpieczna obsługa wyjątków
**wyjątki a kontenery (STL)
*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  
**kontrola wersji (Subversion)
**testowanie (CPPUnit)
**testowanie (CPPUnit)


=== Literatura ===
=== Literatura ===
*Stroustroup ''Jezyk C++''.
*D. Vandervoorde, N. Josuttis ''"C++ Szablony, Vademecum profesjonalisty"'', Helion S.A 2003.
*Alexandrescu ''Modern C++ Design, Generic Programming and Design Patterns Applied'', 2001 Addison-Wesley.
*Alexandrescu ''"Nowoczesne projektowanie W C++"'', Wydawnictwa Naukowo-Techniczne 2005.
*S. Meyers, ''STL w praktyce. 50 sposobów efektywnego wykorzystania'', 2004 Helion.
*N. Josuttis ''"C++ Biblioteka Standardowa, podręcznik programisty"'', Wydawnictwo HELION 2003.
*S. Meyers,''C++, 50 efektywnych sposobów na udoskonalenie Twoich programów'', 2003 Helion.
*B. Eckel, Ch. Allinson, ''"Thinking in C++"'' Edecja Polska, tom 2, Wydawnictwo HELION 2004.
*S. Meyers, ''More effective C++''
 
*B. Eckel, Ch. Allinson, ''Thinking in C++” Tom 2 2004 Helion.''
 
*B. Meyer, ''Object Oriented Software Construction''
 
*Strona SGI http://www.sgi.com/tech/stl/”
 


== Moduły ==
== Moduły ==
# [[Zaawansowane CPP/Wykład 1:|Szablony I]] ([[Zaawansowane CPP/Ćwiczenia 1:|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 1: Szablony I|Szablony I]] ([[Zaawansowane CPP/Ćwiczenia 1: Szablony I|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 2:|Programowanie uogólnione]] ([[Zaawansowane CPP/Ćwiczenia 2:|ć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]] ([[Zaawansowane CPP/Ćwiczenia 3:|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 3: Szablony II|Szablony II]] ([[Zaawansowane CPP/Ćwiczenia 3: Szablony II|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 4:|Klasy cech]] ([[Zaawansowane CPP/Ćwiczenia 4:|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 4: Testowanie|Testowanie]] ([[Zaawansowane CPP/Ćwiczenia 4: Testowanie|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 5:|Funkcje typów i inne sztuczki]] ([[Zaawansowane CPP/Ćwiczenia 5:|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 5: Klasy cech|Klasy cech]] ([[Zaawansowane CPP/Ćwiczenia 5: Klasy cech|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 6:|Klasy wytycznych]] ([[Zaawansowane CPP/Ćwiczenia 6:|ć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:|Metaprogramowanie]] ([[Zaawansowane CPP/Ćwiczenia 7:|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 7: Klasy wytycznych|Klasy wytycznych]] ([[Zaawansowane CPP/Ćwiczenia 7: Klasy wytycznych|ćwiczenia]])
# [[Zaawansowane CPP/Wykład 8:|Szablony wyrażeń]] ([[Zaawansowane CPP/Ćwiczenia 7:|ć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
  • 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

  1. Szablony I (ćwiczenia)
  2. Programowanie uogólnione (ćwiczenia)
  3. Szablony II (ćwiczenia)
  4. Testowanie (ćwiczenia)
  5. Klasy cech (ćwiczenia)
  6. Funkcje typów i inne sztuczki (ćwiczenia)
  7. Klasy wytycznych (ćwiczenia)
  8. Metaprogramowanie (ćwiczenia)
  9. Szablony wyrażeń (ćwiczenia)
  10. Inteligentne wskaźniki (ćwiczenia)
  11. Funktory (ćwiczenia)
  12. Używanie funktorów (ćwiczenia)
  13. Wyjątki (ćwiczenia)
  14. Zarządzanie pamięcią (ć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