Detail předmětu
Jazyk C++
FSI-SCPAk. rok: 2020/2021
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. Jazyk dostal v roce 2011 obrovskou revizi s normou C++11 a přivedl jej tak do 21. století.
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
Způsob a kritéria hodnocení
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
Základní literatura
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
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
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
2. Základní datové typy
3. Pole a smyčky
4. Ukazatele a odkazy
5. Definice funkcí
6. Šablony funkcí
7. Direktivy preprocesoru
8. Třídy a objektově orientované programování
9. Přetěžování operátorů
10. Dědičnost, polymorfismus
11. Třídy šablon
12. Kontejnery a algoritmy STL
13. Knihovny pro vědecko-technické výpočty
Cvičení s počítačovou podporou
Vyučující / Lektor
Osnova
2. MSBuild, CMake, vcpkg
3. -8. Malé projekty
9. C++/CLI
10. Interoperabilita (Matlab, .NET)
11. Armadillo, Eigen, MKL
12. Boost.Numeric.Odeint
13. Zápočet
Elearning