Popis online kurzu
Kurz vyššieho programovacieho jazyka C++ na úrovni Intermediate (stredne pokročilý) je určený všetkým poslucháčom, ktorí majú základné alebo pokročilé vedomosti jazyka C++. Konkrétne je vhodné, keď poslucháč ovláda základné vstavené údajové typy jazyka C++, operátory používané v tomto jazyku, riadenie a vetvenie pomocou cyklov, príkazu if a klauzuly else. Ďalej je potrebné mať základné znalosti z pointrovej aritmetiky a objektovo orientovaného programovania. Taktiež je vhodné, keď má poslucháč znalosti zo základov algoritmizácie, pretože tá jednoducho neodmysliteľne patrí k tomuto jazyku.
Najlepším predpokladom pre zvládnutie tohto kurzu je ovládať tematickú problematiku kurzov, ktoré už boli publikované predtým. To sú konkrétne kurzy
C++ Elementary I.,
C++ Elementary II. a
C++ Pre-Intermediate. Ak ti nejaké znalosti chýbajú, odporúčam ti pozrieť si najskôr spomenuté tri kurzy.
Čo sa týka jazyka C++, je to stále veľmi používaný jazyk. Na scéne je už 40 rokov a stále nestarne. Ja osobne ho považujem preto za nadčasový. Jeho prednosťami sú pointrová aritmetika, objektovo orientovaný design, možnosť generického programovania, tiež výkonný kompilátor a enormná rýchlosť vykonávania strojového kódu. K ďalším výhodám patrí bohatá štandardná knižnica, statická typová kontrola, platformová nezávislosť či nenáročnosť vývojového prostredia. Jazyk C++ podporuje niekoľko štýlov programovania a používa sa najmä v počítačovej grafike, zábavnom priemysle ako sú hry, pri programovaní vstavaných systémov (embedded systems), v robotike či inej inžinierskej činnosti.
V kurze C++ pre stredne pokročilých sa naučíš opäť veľa nových vecí. V úvode kurzu rozoberám problematiku nastavenia vlastností integrovaného vývojového prostredia Microsoft ® Visual Studio ® 2019 spolu s problematikou ladenia zdrojového kódu (debugging), kde sa naučíš ako detegovať chyby v svojom kóde. Každý programátor sa totiž stretáva s chybami, ktoré sa prejavujú pri kompilácii a zostavovaní kódu alebo počas behu programu.
Ďalej nasledujú tri kapitoly, ktoré súvisia s aplikáciou algoritmizácie v praxi. Konkrétne pochopíš, ako fungujú triediace algoritmy BubbleSort a QuickSort. Triediaci algoritmus BubbleSort som viac menej pridal kvôli jeho jednoduchosti a všeobecného prehľadu. Hlavný dôraz kladiem na algoritmus QuickSort a to z dôvodu jeho výkonnosti. Zotriedenie poľa dosiahnete použitím QuickSort-u oveľa rýchlejšie ako pri použití priemerných triediacich algoritmov ako sú InsertSort, SelectSort alebo BubbleSort. Algoritmus QuickSort je výkonný a na implementáciu nenáročný. Je to algoritmus typu Divide at Impera (rozdeľuj a panuj). Viac si môžeš pozrieť v kurze.
Problematiku algoritmizácie uzatvára kapitola o binárnom vyhľadávaní, ktorá je jednoduchá na pochopenie. Zároveň je binárne vyhľadávanie spôsob, ktorým je možné rýchlo prehľadávať zoznamy a tak sa dostať k potrebným informáciám. Binárne vyhľadávanie je oveľa efektívnejší spôsob vyhľadávania v utriedených zoznamoch, ako ich prechádzanie od začiatku do konca (lineárne vyhľadávanie).
Za spomenutou problematikou nasleduje jedna kapitola, ktorá sa venuje inline funkciám. V krátkosti povedané sa jedná o mechanizmus, ktorý je podobný makrám v jazyku C. Tento mechanizmus optimalizuje kód a urýchľuje vykonávanie strojového kódu, pretože inline funkcia nie je volaná (neexistuje žiadne odovzdávanie riadenia do podprogramu), ale je vykonávaná na riadku, čo znamená, že volanie funkcie sa nahrádza priamo jej definíciou. Inak povedané, riadok s volaním inline funkcie sa nahradí telom tejto funkcie.
Po téme inline funkcií nasleduje séria štyroch kapitol, ktoré dopodrobna rozoberajú problematiku štandardnej knižnice jazyka C++ a to konkrétne triedy string. Keď je reč o nejakej triede, mala by sa vám vybaviť súvislosť s objektovo orientovaným programovaním. V tejto kapitole sa však v praktickej ukážke nevytvárajú žiadne nové triedy. Kladie sa len dôraz na efektívne používanie triedy string, ktorej implementácia je dosť rozsiahla. Na druhej strane zjednodušuje programátorovi prácu s reťazcami, ktoré sú reprezentované znakmi zo sady ASCII.
Ďalej nasledujú štyri kapitoly, ktorých obsah pojednáva o objektovo orientovanom programovaní. Jedna kapitola sa z dôvodu zopakovania teórie venuje základom objektovo orientovaného programovanie, kde sa kladie dôraz na pojmový aparát, ktorý obsahuje termíny ako sú trieda, objekt, zapuzdrenie, dedičnosť, polymorfizmus, členy a triedy a prístup k nim. Na záver je uvedená samozrejme praktická ukážka kódu, v ktorej je implementovaná trieda cCar. Ďalšie tri kapitoly o objektovo orientovanom programovaní sa venujú problematike dedičnosti. Dedičnosť je jedným zo základných pilierov objektovo orientovaného programovania. Používa sa v prípadoch, kedy dva objekty reálneho sveta majú podobné vlastnosti a schopnosti, zároveň však majú niečo odlišné. Tieto odlišnosti sa následne doprogramujú do odvodenej triedy, pričom podobnosť so základnou triedou sa ponechá. Takto sa šetrí čas a finančné zdroje, pretože odvodená trieda dedí implementáciu a rozhranie základnej triedy, čo znamená, že sa kladie dôraz na opakovateľnosť použitia toho istého zdrojového kódu.
Konkrétne triedy pri objektovo orientovanom dizajne zodpovedali okrem iného reprezentácii geometrických objektov. Oblasť aplikácie OOP a dedičnosti bola venovaná analytickej geometrii. Práve preto sa v tomto kurze C++ stretnete s základným pojmovým a matematickým aparátom z tejto oblasti. V kurze venujem jednu samostatnú kapitolu výhradne základom analytickej geometrie, kde sa zaoberám pojmami, ako sú bod, vektor, priamka, rovina, karteziánsky súradnicový systém, ako aj algebrickými popismi týchto rovinných a priestorových útvarov.
Na záver kurzu je uvedená kapitola, ktorá sa zaoberá zápisom a čítaním dát do/z textových súborov typu .csv a .txt. Podotýkam, že sa jedná o jednoduché textové súbory, ktoré obsahujú len vlastnú informáciu bez ďalších metadát. Pre narábanie s dátami súborov typu .doc alebo .xls sa používajú iné spôsoby (postupy). Sú to komplexnejšie súbory, ktoré vo svojej hlavičke obsahujú ďalšie metadáta. Ich čítanie a zápis sú omnoho zložitejšie ako čítanie a zápis súborov typu .txt a .csv.
Ku každému videotutoriálu dostávaš prezentáciu, ktorá objasňuje problematiku danej kapitoly. Skoro v každom videu máš uvedenú praktickú ukážku kódu, v ktorom naživo pred tebou programujem zdrojový kód, ktorý súvisí s danou problematikou. Videá sú samozrejme ukončené závermi, v ktorých dostaneš praktické tipy a rady potrebné k tvojmu ďalšiemu programátorskému životu.
Pre koho je kurz určený
Kurz vyššieho programovacieho jazyka C++ na úrovni Intermediate je určený poslucháčom, ktorí majú zvládnuté základy jazyka C++ a základy objektovo orientovaného programovania spolu so základmi pointrovej aritmetiky a algoritmizácie. Tí poslucháči, ktorí absolvovali predchádzajúce tri kurzy majú všetky predpoklady na úspešné zvládnutie problematiky tohto kurzu. Kurz je samozrejme určený aj poslucháčom, ktorí neabsolvovali predchádzajúce tri kurzy, ale majú už praktické skúsenosti s jazykom C++. Jedná sa teda o kurz, ktorý rozširuje pokročilejšie znalosti a techniky poslucháčov a programátorov v jazyku C++.
Čo všetko dostaneš
- 40+ kapitol vrátane INTRA a OUTRA, pričom niektoré z nich sú rozdelené do viacerých podkapitol alebo shot-ov, čomu skutočne zodpovedá náročnosť kurzu na úrovni Intermediate,
-
prezentáciu ku každej kapitole, kde sú vždy uvedené tipy na záver,
-
diskusné fórum, kde odpoviem na tvoje otázky,
-
certifikát o absolvovaní kurzu,
-
garanciu vrátenia peňazí do 14 dní v prípade nespokojnosti s kurzom,
- veľa obrázkov, ktoré sú súčasťou kurzu, na ktorých som preberal danú problematiku,
- textový súbor, v ktorom máš ukážky zdrojových kódov, ktoré modelujú chyby v implementácii.