Název:

Seminář C++

Zkratka:ICP
Ak.rok:2007/2008
Semestr:letní
Studijní plán:
ProgramOborRočníkPovinnost
IT-BC-3BIT2.povinně volitelný - skupina T
Vyučovací jazyk:čeština
Informace veřejné:http://www.fit.vutbr.cz/study/courses/ICP/public/
Kredity:4 kredity
Ukončení:zápočet
Výuka:
hod./sempřednáškasem./cvičenílab. cvičenípoč. cvičeníjiná
Rozsah:0260013
 zkouškatestycvičenílaboratořeostatní
Body:0000100
Garant:Peringer Petr, Dr. Ing., UITS
Cvičící:Bidlo Michal, Ing., Ph.D., UPSY
Dvořák Radim, Ing., UITS
Kupčík Jan, Ing., UIFS
Peringer Petr, Dr. Ing., UITS
Fakulta:Fakulta informačních technologií VUT v Brně
Pracoviště:Ústav inteligentních systémů FIT VUT v Brně
Prerekvizity: 
Jazyk C (IJC), UITS
 
Cíle předmětu:
Cílem je naučit studenty základy objektově orientovaného přístupu v jazyce C++ a základy generického programování s využitím šablon.
Anotace:
Přehled vlastností jazyka C++ podle normy ISO. Objekty, třídy, dědičnost, polymorfismus. Přetěžování operátorů a funkcí. Šablony funkcí a tříd. Obsluha výjimek. Použití standardních knihoven, STL.
Získané dovednosti, znalosti a kompetence:
Studenti budou umět využít C++ k programování středně složitých aplikací založených na objektově orientovaném přístupu a také na generickém programování.
Osnova seminářů:
  1. Úvod. Charakteristika jazyka ISO C++. Příklady ilustrující použití C++.
  2. Rozdíly mezi C a C++. Deklarace, definice, prostory jmen. Typ reference, typ bool.
  3. Přehled příkazů a operátorů. Principy objektově orientovaného programování v C++, terminologie.
  4. Objekty, třídy, členy tříd. Kontrola přístupu ke členům tříd. Metody, klíčové slovo this, statické členy tříd.
  5. Vytváření a inicializace objektů: konstruktory, destruktory, operátory new a delete.
  6. Přetěžování funkcí a operátorů. Konverze typů.
  7. Vstup/výstup (iostream). Definice vstup/výstupních operací. Formátování výstupu, práce se soubory a řetězci.
  8. Dědičnost, bázové a odvozené třídy. Násobná dědičnost, virtuální bázové třídy. Volání konstruktorů a destruktorů, operátory a dědičnost.
  9. Polymorfismus, virtuální metody, abstraktní třídy. Dynamická identifikace typů (RTTI), dynamické přetypování. Návrhové vzory - přehled.
  10. Generické třídy a funkce (šablony). Specializace a částečná specializace šablon.
  11. Standardní knihovna šablon (STL), algoritmy, iterátory, kontejnery, funkční objekty. Vytváření knihoven v C++.
  12. Zpracování výjimečných situací. Specifikace a obsluha výjimek.
  13. Přehled standardních knihoven. Ukazatele na členy tříd. Metody efektivního programování v C++.
Osnova ostatní - projekty, práce:
  1. Projekt (společný s předmětem IPP)
Literatura referenční:
  1. Stroustrup, B.: The C++ programming language, third edition, Addison-Wesley, 1997
  2. Stroustrup, B.: The C++ programming language, special edition, Addison-Wesley, 2000
  3. Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000
  4. Booch, G.: Object-Oriented Design with applications, 2nd edition, The Benjamin/Cummings Publishing Company 1994
  5. ISO: Programming languages - C++, International Standard ISO/IEC 14882, 1988
  6. ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996
  7. Eckel, B.: Myslíme v jazyku C++, GRADA, 2000
  8. Gamma et al.: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994
Literatura studijní:
  1. Eckel B.: Myslíme v jazyku C++, GRADA, 2000
  2. Eckel, B.: Thinking in C++, 2nd edition, Prentice-Hall, 2000 [dostupné elektronicky na WWW]
  3. ISO: Programming Language C++, WG21/N1043 Draft Proposed International Standard, 1996 [dostupné elektronicky na WWW]
  4. Gamma E. a kol: Návrh programů pomocí vzorů, Grada, 2003
  5. Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
Podmínky zápočtu:
Nejméně 50% bodů z projektu