Hlavní stránka | Seznam oborů/specializací | Seznam všech skupin předmětů | Seznam všech předmětů | Seznam rolí                Návod

Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2  značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
MI-MPC Moderní programování v C++ Rozsah kontaktní výuky: 2P+1C
Vyučující: Způsob zakončení: Z,ZK
Zodpovědná katedra: 18102 ECTS Kredity: 5 Semestr: Z

Anotace:
Studenti se naučí využívat moderní rysy současných verzí jazyka C++ pro tvorbu softwaru. Důraz je kladen především na efektivitu, a to jak v podobě tvorby udržovatelných a přenositelných zdrojových kódů, tak v podobě korektních programů s nízkými nároky na paměť a procesorový čas. Od B201 vypisována ekvivalentní náhrada NI-EPC.

Osnovy přednášek:
1. Úvod, optimalizace ukládání krátkých řetězců
2. Kopírování vs přesun obsahu objektů
3. Efektivní podoby speciálních členských funkcí
4. Dynamická alokace paměti, dynamické vytváření objektů
5. Zachování hodnotové kategorie, variadické šablony
6. Redukce kopírování a přesunu obsahu objektů, inicializace
7. Dedukce typů
8. Specializace šablon a šablonové metaprogramování
9. Aserce, výběr volané funkce, lambda funkce
10. Automatické uvolňování prostředků, chytré ukazatele, skrytí typu objektu
11. Více-vláknové programování
12. Politiky, optimalizace prázdné bázové třídy, výčtové typy

Osnovy cvičení:
Na počítačových cvičeních řeší studenti úlohy navazující na přednášky; cvičící poskytuje konzultace a rady.

Literatura:
Josuttis, The C++ Standard Library-A Tutorial and Reference Meyers, Effective Modern C++ Prata, C++ Primer Plus Reddy, API Design for C++ Stroustrup, Programming - Principles and Practice Using C++ Stroustrup, The C++ Programming Language Sutter and Alexandrescu, C++ Coding Standards: 101 Rules, Guidelines, and Best Practices Vandervoorde and Josuttis, C++ Templates - The Complete Guide Williams, C++ Concurrency in Action cppreference.com, www.cplusplus.com (C++ reference) stackoverflow.com (developer forum) isocpp.org (news, status, blogs, FAQs, discussion) ISO/IEC 14882:2014 Information technology - Programming languages-C++

Požadavky:
Základy programování v C a C++ (na úrovni předmětů BI-PA1 a BI-PA2)

Předmět nahrazen ekvivalentním NI-EPC // Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/MI-MPC/

Předmět je zahrnut do těchto studijních plánů:
Plán Obor Role Dop. semestr
MI-ZI.2016 Znalostní inženýrství V 3
MI-ZI.2018 Znalostní inženýrství V 3
MI-SP-TI.2016 Systémové programování V 3
MI-SP-SP.2016 Systémové programování V 3
MI-SPOL.2016 Nespecifikovaný/á obor/specializace studia - Unspecified Branch/Specialisation of Study V 3
MI-WSI-WI.2016 Webové a softwarové inženýrství V 3
MI-WSI-SI.2016 Webové a softwarové inženýrství V 3
MI-WSI-ISM.2016 Webové a softwarové inženýrství V 3
MI-NPVS.2016 Návrh a programování vestavných systémů V 3
MI-PSS.2016 Počítačové systémy a sítě V 3
MI-PB.2016 Počítačová bezpečnost V 3
NI-TI.2018 Teoretická informatika V 1,3


Stránka vytvořena 20. 4. 2024, semestry: L/2022-3, L/2023-4, L/2021-2, Z/2023-4, Z/2022-3, L/2020-1, Z/2021-2, Z/2019-20, Z/2020-1, Z/2024-5, L/2019-20, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: J. Novák, I. Halaška