Popis online kurzu
Kurz vyššího programovacího jazyka C++ na úrovni Intermediate (středně pokročilý) je určen všem posluchačům, kteří mají základní nebo pokročilé znalosti jazyka C++. Konkrétně je vhodné, když posluchač ovládá základní vestavěné datové typy jazyka C++, operátory používané v tomto jazyce, řízení a větvení pomocí cyklů, příkazu if a klauzule else. Dále je potřeba mít základní znalosti z pointové aritmetiky a objektově orientovaného programování. Rovněž je vhodné, když má posluchač znalosti ze základů algoritmizace, protože ta prostě neodmyslitelně patří k tomuto jazyku.
Nejlepším předpokladem pro zvládnutí tohoto kurzu je ovládat tematickou problematiku kurzů, které již byly publikované dříve. To jsou konkrétní kurzy
C++ Elementary I.,
C++ Elementary II. a
C++ Pre-Intermediate. Pokud ti nějaké znalosti chybí, doporučuji ti nejdříve si prohlédnout zmíněné tři kurzy.
Co se týče jazyka C++, je to stále velmi používaný jazyk. Na scéně je již 40 let a stále nestárne. Já osobně ho proto považuji za nadčasový. Jeho přednostmi jsou pointrová aritmetika, objektově orientovaný design, možnost generického programování, též výkonný kompilátor a enormní rychlost provádění strojového kódu. K dalším výhodám patří bohatá standardní knihovna, statická typová kontrola, platformová nezávislost či nenáročnost vývojového prostředí. Jazyk C++ podporuje několik stylů programování a používá se zejména v počítačové grafice, zábavním průmyslu jako jsou hry, při programování vestavěných systémů (embedded systems), v robotice či jiné inženýrské činnosti.
V kurzu C++ pro středně pokročilé se naučíš opět mnoho nových věcí. V úvodu kurzu rozebírám problematiku nastavení vlastností integrovaného vývojového prostředí Microsoft ® Visual Studio ® 2019 spolu s problematikou ladění zdrojového kódu (debugging), kde se naučíš, jak detekovat chyby ve svém kódu. Každý programátor se totiž setkává s chybami, které se projevují při kompilaci a sestavování kódu nebo v průběhu běhu programu.
Dále následují tři kapitoly, které souvisí s aplikací algoritmizace v praxi. Konkrétně pochopíš, jak fungují třídící algoritmy BubbleSort a Quicksort. Řadicí algoritmus BubbleSort jsem více méně přidal kvůli jeho jednoduchosti a všeobecnému přehledu. Hlavní důraz kladu na algoritmus Quicksort a to z důvodu jeho výkonnosti. Setřídění pole dosáhnete použitím Quicksortu mnohem rychleji, než při použití průměrných třídicích algoritmů jako jsou InsertSort, SelectSort nebo BubbleSort. Algoritmus Quicksort je výkonný a na implementaci nenáročný. Je to algoritmus typu Divide at Impera (rozděl a panuj). Více si můžeš prohlédnout v kurzu.
Problematiku algoritmizace uzavírá kapitola o binárním vyhledávání, která je jednoduchá na pochopení. Zároveň je binární vyhledávání způsob, kterým lze rychle prohledávat seznamy, a tak se dostat k potřebným informacím. Binární vyhledávání je mnohem efektivnější způsob vyhledávání v seřazených seznamech, než jejich procházení od začátku do konce (lineární vyhledávání).
Za zmíněnou problematikou následuje jedna kapitola, která se věnuje inline funkcím. V krátkosti řečeno se jedná o mechanismus, který je podobný makrům v jazyce C. Tento mechanismus optimalizuje kód a urychluje provádění strojového kódu, protože inline funkce není volaná (neexistuje žádné předávání řízení do podprogramu), ale je prováděná na řádku, což znamená, že volání funkce nahrazuje přímo její definicí. Jinak řečeno, řádek s voláním inline funkce se nahradí tělem této funkce.
Po tématu inline funkcí následuje série čtyř kapitol, které dopodrobna rozebírají problematiku standardní knihovny jazyka C++, a to konkrétně třídy string. Když je řeč o nějaké třídě, měla by se vám vybavit souvislost s objektově orientovaným programováním. V této kapitole se však v praktické ukázce nevytvářejí žádné nové třídy. Klade se jen důraz na efektivní používání třídy string, jejíž implementace je velmi rozsáhlá. Na druhé straně zjednodušuje programátorovi práci s řetězci, které jsou reprezentovány znaky ze sady ASCII.
Dále následují čtyři kapitoly, jejichž obsah pojednává o objektově orientovaném programování. Jedna kapitola se z důvodu opakování teorie věnuje základům objektově orientovaného programování, kde se klade důraz na pojmový aparát, který obsahuje termíny jako jsou třída, objekt, zapouzdření, dědičnost, polymorfismus, členy, třídy a přístup k nim. Na závěr je uvedena samozřejmě praktická ukázka kódu, v níž je implementovaná třída cCar. Další tři kapitoly o objektově orientovaném programování se věnují problematice dědičnosti. Dědičnost je jedním ze základních pilířů objektově orientovaného programování. Používá se v případech, kdy dva objekty reálného světa mají podobné vlastnosti a schopnosti, zároveň však mají něco odlišného. Tyto odlišnosti se následně doprogramují do odvozené třídy, přičemž podobnost se základní třídou se ponechá. Takto se šetří čas a finanční zdroje, protože odvozená třída dědí implementaci a rozhraní základní třídy, což znamená, že se klade důraz na opakovatelnost použití stejného zdrojového kódu.
Konkrétně třídy při objektově orientovaném designu odpovídaly mimo jiné reprezentaci geometrických objektů. Oblast aplikace OOP a dědičnosti byla věnována analytické geometrii. Právě proto se v tomto kurzu C++ setkáte se základním pojmovým a matematickým aparátem z této oblasti. V kurzu věnuji jednu samostatnou kapitolu výhradně základům analytické geometrie, kde se zabývám pojmy, jako jsou bod, vektor, přímka, rovina, kartézský souřadnicový systém, jakož i algebraickými popisy těchto rovinných a prostorových útvarů.
Na závěr kurzu je uvedená kapitola, která se zabývá zápisem a čtením dat do/z textových souborů typu .csv a .txt. Podotýkám, že se jedná o jednoduché textové soubory, které obsahují jen vlastní informaci bez dalších metadat. Pro nakládání s daty souborů typu .doc nebo .xls se používají jiné způsoby (postupy). Jsou to komplexnější soubory, které ve své hlavičce obsahují další metadata. Jejich čtení a zápis jsou mnohem složitější než čtení a zápis souborů typu .txt a csv.
Ke každému video tutoriálu dostáváš prezentaci, která objasňuje problematiku dané kapitoly. Skoro v každém videu máš uvedenou praktickou ukázku kódu, ve které živě před tebou programuji zdrojový kód, který souvisí s danou problematikou. Videa jsou samozřejmě ukončená závěry, v nichž dostaneš praktické tipy a rady potřebné k tvému dalšímu programátorskému životu.
Pro koho je kurz určený
Kurz vyššího programovacího jazyka C++ na úrovni Intermediate je určen posluchačům, kteří mají zvládnuté základy jazyka C++ a základy objektově orientovaného programování spolu se základy pointrové aritmetiky a algoritmizace. Ti posluchači, kteří absolvovali předchozí tři kurzy, mají všechny předpoklady pro úspěšné zvládnutí problematiky tohoto kurzu. Kurz je samozřejmě určen i posluchačům, kteří neabsolvovali předchozí tři kurzy, ale mají již praktické zkušenosti s jazykem C++. Jedná se tedy o kurz, který rozšiřuje pokročilejší znalosti a techniky posluchačů a programátorů v jazyce C++.
Co všechno dostaneš
- 40+ kapitol včetně INTRA a outro, přičemž některé z nich jsou rozděleny do několika podkapitol nebo shot-ů, čemu skutečně odpovídá náročnost kurzu na úrovni Intermediate,
- prezentaci ke každé kapitole, kde jsou vždy uvedeny tipy na závěr,
- diskusní fórum, kde odpovím na tvé otázky,
- certifikát o absolvování kurzu,
- garanci vrácení peněz do 14 dnů v případě nespokojenosti s kurzem,
- hodně obrázků, které jsou součástí kurzu, na kterých jsem probíral danou problematiku,
- textový soubor, ve kterém máš ukázky zdrojových kódů, které modelují chyby v implementaci.