Detail předmětu
Jazyk C++
FSI-SCPAk. rok: 2023/2024
C++ je moderní programovací jazyk se zaměřením na vysoký výkon. Je široce používán ve velmi odlišných kontextech a má vynikající podporu jak v nástrojích, tak i v knihovnách. Předmět poskytuje základy jazyka C++ a úvod do objektově orientovaného programování. Seznámí studenty s třídami, objekty, pojmem dědičnosti aj.
Jazyk výuky
čeština
Počet kreditů
5
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Předpokládají se základní znalosti a zkušenosti s programovacím jazykem (C#, Java).
Pravidla hodnocení a ukončení předmětu
Hodnocení předmětu sestává z bodů za semestrální projekt (prezentace funkčního programu v Java) (70 %) a z bodů za týdenní samostatné úlohy (30 %). Podmínkou udělení zápočtu je získání minimálně 50 % bodů ze semestrálního projektu. Za aktivní přínos ve výuce lze získat zvláštní ohodnocení.
Účast na přednáškách je žádoucí, účast ve cvičeních je povinná. Výuka probíhá podle týdenních rozvrhů. Způsob náhrady zameškané výuky je plně v kompetenci cvičícího.
Účast na přednáškách je žádoucí, účast ve cvičeních je povinná. Výuka probíhá podle týdenních rozvrhů. Způsob náhrady zameškané výuky je plně v kompetenci cvičícího.
Učební cíle
Cílem předmětu je seznámit studenty s aktuálními programovacími technikami až po normu C++19. V C++ existuje mnoho numerických knihoven pro vědeckotechnické výpočty. Studenti budou schopni vyvíjet moderní vědecké aplikace.
Studenti získají základní dovednosti a zkušenosti při vytváření a ladění programů s využitím programovacího jazyka C++.
Studenti získají základní dovednosti a zkušenosti při vytváření a ladění programů s využitím programovacího jazyka C++.
Základní literatura
Ivor Horton, Peter Van Weert
Beginning C++17: From Novice to Professional
Apress 2018
ISBN 1484233658 (EN)
Bjarne Stroustrup A Tour of C++ [2nd ed.] C++ In-Depth Series Addison-Wesley 2018 ISBN 978-0-13-499783-4 (EN)
George Em Karniadakis and Robert M. Kirby II Parallel Scientific Computing in C++ and MPI Cambridge University Press 2003 ISBN 9780511812583 (EN)
Jacek Galowicz C++17 STL Cookbook Packt Publishing 2017 ISBN 978-1-78712-049-5 (EN)
Miroslav Virius Programování v C++ od základů k profesionálnímu použití GRADA 2018 ISBN 978-80-271-0502-1 (CS)
William H. Press Numerical Recipes 3rd Edition: The Art of Scientific Computing Cambridge University Press 2007 ISBN10: 0521880688 (EN)
Yair Shapira Mathematical Objects in C++: Computational Tools in A Unified Object-Oriented Approach Chapman & Hall 2009 ISBN 9781439811474 (EN)
Bjarne Stroustrup A Tour of C++ [2nd ed.] C++ In-Depth Series Addison-Wesley 2018 ISBN 978-0-13-499783-4 (EN)
George Em Karniadakis and Robert M. Kirby II Parallel Scientific Computing in C++ and MPI Cambridge University Press 2003 ISBN 9780511812583 (EN)
Jacek Galowicz C++17 STL Cookbook Packt Publishing 2017 ISBN 978-1-78712-049-5 (EN)
Miroslav Virius Programování v C++ od základů k profesionálnímu použití GRADA 2018 ISBN 978-80-271-0502-1 (CS)
William H. Press Numerical Recipes 3rd Edition: The Art of Scientific Computing Cambridge University Press 2007 ISBN10: 0521880688 (EN)
Yair Shapira Mathematical Objects in C++: Computational Tools in A Unified Object-Oriented Approach Chapman & Hall 2009 ISBN 9781439811474 (EN)
Doporučená literatura
Joe Pitt-Francis, Jonathan Whiteley
Guide to Scientific Computing in C++ (2nd edition)
Springer 2017
ISBN 978-3-319-73132-2 (EN)
Mikael Olsson C++17 Quick Syntax Reference Apress 2018 ISBN 978-1-4842-3599-7 (EN)
Miroslav Virius Programovací jazyk C++ (1.-3. díl) ČVUT 2016 ISBN 9788001059616 (CS)
Mikael Olsson C++17 Quick Syntax Reference Apress 2018 ISBN 978-1-4842-3599-7 (EN)
Miroslav Virius Programovací jazyk C++ (1.-3. díl) ČVUT 2016 ISBN 9788001059616 (CS)
Elearning
eLearning: aktuální otevřený kurz
Zařazení předmětu ve studijních plánech
- Program B-MAI-P bakalářský 3 ročník, zimní semestr, povinně volitelný
Typ (způsob) výuky
Přednáška
13 hod., nepovinná
Vyučující / Lektor
Osnova
1. Úvod do programovacího jazyka C++
2. Základní datové typy
3. Pole a smyčky, ukazatele a odkazy
4. Třídy, objekty, dědičnost
5. Polymorfismus, zapouzdření
6. Metody, překrývání, abstraktní a virtuální metody
7. Základy vstupu, výstupu, datové proudy
8. Práce se soubory
9. Výjimky
10. Šablony
11. Kontejnery a algoritmy STL
12. Knihovny pro vědecko-technické výpočty
13. Rezerva přednášejícího
2. Základní datové typy
3. Pole a smyčky, ukazatele a odkazy
4. Třídy, objekty, dědičnost
5. Polymorfismus, zapouzdření
6. Metody, překrývání, abstraktní a virtuální metody
7. Základy vstupu, výstupu, datové proudy
8. Práce se soubory
9. Výjimky
10. Šablony
11. Kontejnery a algoritmy STL
12. Knihovny pro vědecko-technické výpočty
13. Rezerva přednášejícího
Cvičení s počítačovou podporou
26 hod., povinná
Vyučující / Lektor
Osnova
Cvičení je zaměřeno na praktické zvládnutí látky probrané v tématech na
přednáškách, viz. Osnova přednášek. Důraz je kladen na schopnost samostatné práce, tj. na vytvoření jednoduché aplikace, často v rámci samostatných úkolů.
Navíc se studenti seznámí s nástroji pro programovací jazyk C++:
Visual studio 2019, MSBuild, CMake, vcpkg, Armadillo, Eigen, MKL atd.
přednáškách, viz. Osnova přednášek. Důraz je kladen na schopnost samostatné práce, tj. na vytvoření jednoduché aplikace, často v rámci samostatných úkolů.
Navíc se studenti seznámí s nástroji pro programovací jazyk C++:
Visual studio 2019, MSBuild, CMake, vcpkg, Armadillo, Eigen, MKL atd.
Elearning
eLearning: aktuální otevřený kurz