Detail předmětu

Jazyk C++

FSI-SCPAk. rok: 2022/2023

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ů

3

Zajišťuje ústav

Výsledky učení předmětu

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++.

Prerekvizity

Předpokládají se základní znalosti a zkušenosti s programovacím jazykem (C#, Java).

Plánované vzdělávací činnosti a výukové metody

Předmět je vyučován formou přednášek, které mají charakter výkladu základních principů a teorie dané disciplíny. Cvičení je zaměřeno na praktické zvládnutí látky probrané na přednáškách.

Způsob a kritéria hodnocení

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í.

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.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

Úč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.

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)

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)

Elearning

Zařazení předmětu ve studijních plánech

  • Program B-MAI-P bakalářský 3 ročník, letní semestr, povinný

  • Program CŽV celoživotní vzdělávání v akr. stud. programu

    obor CZV , 1 ročník, letní semestr, povinný

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

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.

Elearning