Úvodní přednáška doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Úvodní přednáška 1 / 430
Osnova přednášky Úvodní přednáška O předmětu Algoritmy I Prezenční forma studia Výuka Úkoly a jejich hodnocení Kombinovaná forma studia Výuka Úkoly a jejich hodnocení Software pro výuku Studijní literatura Jiří Dvorský (VŠB TUO) Úvodní přednáška 2 / 430
O předmětu Algoritmy I Upozornění Všechny aktuální informace k předmětu naleznete na http://www.cs.vsb.cz/dvorsky/ Tato prezentace slouží jen pro účely úvodní přednášky a nebude dále aktualizována. Jiří Dvorský (VŠB TUO) Úvodní přednáška 3 / 430
O předmětu Algoritmy I předmět je úvodním kurzem algoritmického řešení úloh s využitím datových struktur, budeme se zabývat základními algoritmy třídění a vyhledávání v poli, základním použitím rekurzivních algoritmů, převážně jako výchozí datovou strukturu budeme používat pole, algoritmy a datové struktury budou demonstrovány v jazyce C++, vazba na předmět Programování I. Jiří Dvorský (VŠB TUO) Úvodní přednáška 4 / 430
Rozsah předmětu, způsob zakončení Rozsah předmětu výuka probíhá v zimním semestru prvního ročníku bakalářského studia, hodinová dotace: 2 hodiny přednášky a 2 hodiny cvičení týdně v prezenční formě, 7 tutoriálů v kombinované formě studia. předmět je ohodnocen 5 kredity. Způsob zakončení zakončení klasifikovaným zápočtem, klasifikovaný zápočet není zkouška, nejsou tři termíny jako u zkoušky, Jiří Dvorský (VŠB TUO) Úvodní přednáška 5 / 430
Garant předmětu Garant předmětu, přednášející, tutor komb. formy doc. Mgr. Kancelář: Email: Web: Jiří Dvorský, Ph.D. EA441 jiri.dvorsky@vsb.cz www.cs.vsb.cz/dvorsky K čemu je garant předmětu? Garant předmětu zodpovídá za průběh výuky celého předmětu, průběh cvičení, plnění úkolů na cvičeních a za korektní hodnocení úkolů. Problémy spojené se cvičeními řešte primárně se svým cvičícím. Pokud se nepodaří dosáhnout řešení problému s cvičícím obracejte se na garanta předmětu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 6 / 430
Prerekvizity Prerekvizity jsou souhrnem požadavků, které je nutné splnit aby si student mohl zapsat předmět. Prerekvizity jsou buď formální nebo věcné. Předmět Algoritmy I nemá žádné formální prerekvizity, předpokládá se ale znalost středoškolské matematiky a obecná orientace ve výpočetní technice. Předmět Algoritmy I je ale povinnou prerekvizitou navazujícího předmětu Algoritmy II. Předmět Algoritmy II máte zapsán už teď, jde o povinný předmět, ale bez úspěšného ukončení předmětu Algoritmy I Vám nebude možno zapsat do Edisonu jakýkoliv výsledek v předmětu Algoritmy II. Jiří Dvorský (VŠB TUO) Úvodní přednáška 7 / 430
Docházka Přednášky jsou obecně nepovinné účast na nich je doporučená Cvičení jsou naopak povinná, účast a aktivita na cvičeních jsou hodnoceny, je nutno získat dostatečné bodové hodnocení. Jiří Dvorský (VŠB TUO) Úvodní přednáška 8 / 430
Studenti se specifickými nároky Centrum Slunečnice FEI http://slunecnice-fei.vsb.cz/, poskytuje podporu zpřístupňující studium i pro studenty se specifickými nároky, lze získat, mimo jiné, zvýšenou časovou dotaci na úkoly. Výzva Je vysoce žádoucí, aby studenti, kteří dostanou tuto zvýšenou časovou dotaci, neprodleně kontaktovali svého cvičícího a garanta předmětu, abychom předešli případným problémům! Jiří Dvorský (VŠB TUO) Úvodní přednáška 9 / 430
Individuální studijní plán Individuální studijní plán umožňuje, ve odůvodněných případech, individuální termíny pro plnění studijních povinností. Výzva Je vysoce žádoucí, aby studenti, kteří získají individuální studijní plán, neprodleně kontaktovali svého cvičícího a garanta předmětu a dohodli se na individuálních termínech plnění úkolů. Individuální studijní plán neznamená naprostou libovůli v termínech. Jiří Dvorský (VŠB TUO) Úvodní přednáška 10 / 430
Konzultační hodiny Pokud na přednášce nebudete něčemu rozumět, potřebujete poradit nebo vyřešit nějaký problém s přednáškou, cvičeními, testy, Vaší absencí na výuce například z důvodů plánované operace atd. je možné využít konzultační hodiny. V tento čas jsem připraven věnovat se Vám osobně. Termín konzultačních hodin je uveřejněn mým webových stránkách. Žádám Vás ale o dodržení několika pravidel: 1. Konzultaci je nutné si domluvit předem, nejlépe emailem. 2. Pokud potřebujete poradit s učivem, přineste si s sebou materiály, které jste si k tématu prostudovali, vypište si co je Vám jasné a kde jste se zasekli a potřebujete poradit. Rozhodně neplatí myšlenka: Já k němu přijdu na konzultaci, on si o mě bude myslet, že jsem úplně blbej a u zápočtu mě vyhodí. Přijdte se zeptat rovnou ke zdroji informací internetová fóra jsou zaplevelena různými polopravdami i naprostými nesmysly. Jiří Dvorský (VŠB TUO) Úvodní přednáška 11 / 430
Algoritmy I výuka, úkoly a jejich hodnocení Výuka, úkoly a jejich hodnocení pro různé formy studia prezenční a kombinované studium má specifickou formu výuky, obě formy studia mají specifické podmínky pro splnění předmětu, podle formy Vašeho studia se Vás týká pouze jedna ze dvou následujících částí prezentace. Jiří Dvorský (VŠB TUO) Úvodní přednáška 12 / 430
Prezenční forma studia Jiří Dvorský (VŠB TUO) Úvodní přednáška 13 / 430
Přednášky každé pondělí od 12:30 do 14:00, učebna NA1, slouží především k: výkladu učiva, zdůraznění klíčových poznatků či postupů v dané části učiva, předvedení ukázkových příkladů, jejich typických řešení a tak dále, na Vaše případné dotazy k přednášce jsem schopen odpovídat v konzultačních hodinách. Jiří Dvorský (VŠB TUO) Úvodní přednáška 14 / 430
Stručná osnova přednášek 1. Úvodní přednáška, Pojem algoritmus 2. Základy jazyka C++ 3. Řídící struktury jazyka C++ 4. Funkce v jazyce C++ 5. Složitost algoritmů 6. Pole v jazyce C++ 7. Rekurze 8. Využití rekurze pro řešení problémů 9. Vyhledávání 10. Třídění 11. Základní třídící algoritmy 12. Pokročilé třídící algoritmy Jiří Dvorský (VŠB TUO) Úvodní přednáška 15 / 430
Cvičení Přímá výuka ve cvičeních odpovídá přednáškám. Ve cvičeních pracují studenti pod vedením cvičícího na konkrétní implementaci příkladů v jazyce C++. V každém cvičení se předpokládá implementace jednoho až dvou příkladů. Další náplní cvičení je testování Vašich znalostí formou různých testů. Dále je také možné konzultovat s cvičícím probírané učivo. Rozdělení do cvičení tak, jak je uvedeno v informačním systému Edison, je nutné respektovat. Není možné překračovat kapacitu cvičení. Veškeré přesuny je nutné mít zaznamenány v systému Edison. Až na výjimky, nelze psát testy na jiných cvičeních, než která máte zapsaná v Edisonu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 16 / 430
Cvičení Cvičení nenahrazuje přednášku! Neočekávejte, že pokud nebudete chodit na přednášky, tak Vám cvičící na cvičeních bude dělat jakousi bleskovou náhradní přednášku, abyste se vůbec mohli pustit do příkladů, jejichž řešení se na cvičení předpokládá. Bývá dobrým zvykem, že studenti se na cvičení aspoň minimálně připraví. Není nutné látku precizně ovládat, ale je nutné se orientovat v základních pojmech. Jinak cvičení nemají smysl. Jiří Dvorský (VŠB TUO) Úvodní přednáška 17 / 430
Úkoly a jejich hodnocení Hodnocení v předmětu Algoritmy I se skládá ze tří částí, úkolů: 1. Průběžná aktivita na cvičeních 2. Test z programování 3. Písemná práce Všechny úkoly jsou povinné. Z každá úkoly je nutné získat aspoň minimální počet bodů. Jiří Dvorský (VŠB TUO) Úvodní přednáška 18 / 430
Úkoly Průběžná aktivita na cvičeních Tato část hodnocení probíhá průběžně po celý semestr. Na každém cvičení bude cvičícím ohodnocena Vaše aktivita. Aktivita je hodnocena pomocí barevného kódu: zelená student na cvičení pracoval aktivně, v látce se orientoval, dařilo se mu implementovat zadané úkoly, oranžová student na cvičení byl spíše pasivní, na cvičení nebyl příliš připraven (ve znalostech měl mezery ), implementace úkolů se příliš nedařila a červená student na cvičení byl zcela pasivní, o výuku nejevil zájem, implementaci úkolů nezvládl. Do této kategorie spadá i neomluvená neúčast na cvičení. Každému barevnému kódu odpovídá určitá váha, která se projeví v celkovém hodnocení všech cvičení. Zelená aktivita má váhu 1, oranžová má váhu 0,5 a červená 0. Jiří Dvorský (VŠB TUO) Úvodní přednáška 19 / 430
Úkoly Průběžná aktivita na cvičeních (pokrač.) Z takto získaných vah z jednotlivých cvičení se na konci semestru vypočte průměrná váha, která se vynásobí maximálním možným počtem bodů (20) a výsledek je Vámi získaný počet bodů. Je zřejmé, že všechny zelené kódy odpovídají maximálnímu počtu bodů (20), samé červené kódy odpovídají nulovému počtu bodů. Body za aktivitu nelze získat zpětně. Příklad Student Franta na pěti cvičeních získal zelené hodnocení, na třech oranžové a na dvou červené. Průměrnou váhu vypočtene jako: 5 1 + 3 0, 5 + 2 0 5 + 3 + 2 = 6, 5 10 = 0, 65. Výsledné bodové hodnocení je tedy 0, 65 20 = 13 bodů. Jiří Dvorský (VŠB TUO) Úvodní přednáška 20 / 430
Úkoly Test z programování Řádné termíny testu proběhnou na cvičeních v týdnu od 10. prosince 2018. Test proběhne tak, že na začátku cvičení dostanete zadání, které ve zbývajícím čase naprogramujete, odladíte a předvedete jeho správnou funkčnost. Řádný termín úkolu je pro všechny studenty daného cvičení povinný. Opravné termíny proběhnou ve zkouškovém období. Pokud se řádného termínu úkolu nezúčastníte, je vaší povinností se cvičícímu předem omluvit. Termín předem znamená nejpozději do začátku daného cvičení. Pokud se neomluvíte, daný úkol bude považován za nesplněný (0 bodů) a opravný termín vám nebude umožněn. Důsledkem je pak neúspěšné ukončení celého předmětu. Pokud se řádného termínu zúčastníte a neuspějete s řešením zadaného úkolu, máte nárok na opravný termín. Na tento úkol máte jeden řádný pokus a jeden opravný pokus. Žádné další pokusy nejsou možné. Jiří Dvorský (VŠB TUO) Úvodní přednáška 21 / 430
Úkoly Písemná práce Řádný termín závěrečné písemná práce proběhne přednášce 17. prosince 2018. Opravné termíny proběhnou ve zkouškovém období. Písemná práce bude zaměřena na (pořadí podle významu): 1. teoretické znalosti, 2. schopnost vysvětlit ukázku kódu v C++ a 3. napsat zdrojový kód funkce implementující jednoduché zadání (např. implementujte funkci která vypíše sudá čísla z intervalu 1 až N, kde N bude parametr funkce), včetně jednoduché rekurzivní funkce. Řádný termín závěrečné písemné práce je pro všechny studenty povinný. Pokud se řádného termínu nezúčastníte, je vaší povinností se garantovi předmětu předem omluvit. Termín předem znamená nejpozději do začátku daného termínu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 22 / 430
Úkoly Písemná práce (pokrač.) Pokud se neomluvíte, daný úkol bude považován za nesplněný (0 bodů) a opravný termín vám nebude umožněn. Důsledkem je pak neúspěšné ukončení celého předmětu. Opravný termín na závěrečnou písemnou práci je poskytován jen těm studentům, kteří u svého prvního pokusu získali aspoň 15 bodů. Počet bodů na prvním termínu Opravný termín 0 až 14 NE 15 až 25 ANO více než 26 není nutný, úspěch Obdobná povinnost omluvit se platí i pro opravný termín. Na tento úkol máte jeden řádný pokus a jeden opravný pokus. Žádné další pokusy nejsou možné. Jiří Dvorský (VŠB TUO) Úvodní přednáška 23 / 430
Hodnocení úkolů Je nutné splnit všechny výše uvedené úkoly, a zároveň u všech úkolů aspoň minimální počet bodů. Úkol Min. počet bodů Max. počet bodů Průb. aktivita na cvičeních 10 20 Test z programování 15 30 Písemná práce 26 50 Celkem 51 100 Všechna bodová hodnocení jsou průběžně zapisována do systému Edison. Jiří Dvorský (VŠB TUO) Úvodní přednáška 24 / 430
Obecné pokyny ke všem úkolům U všech úkolů jste povinni se prokázat svou studentskou kartou nebo jiným oficiálním dokladem totožnosti. Bez prokázání totožnosti Vám nebude výsledek započítán. Každý prohřešek vůči studijnímu řádu u testů a písemné práce bude nekompromisně postihován. Jde především o opisování, plagiátorství, a záměnu studentů. Je zakázáno zadání testů, písemek atd. kopírovat, fotit mobily, fotoaparáty, skenovat či jakkoliv jinak kopírovat, rozmnožovat, sdílet elektronickým způsobem a podobně. Předmět je ukončen klasifikovaným zápočtem. Nevztahuje se tudíž na něj požadavek dvou opravných pokusů, jak to vyžaduje studijní řád u zkoušky. Jiří Dvorský (VŠB TUO) Úvodní přednáška 25 / 430
Obecné pokyny ke všem úkolům (pokrač.) Proč nepovolovat opravný termín? Plýtvání časem vyučujícího! Neúčast na řádných termínech test se musí psát i když je přítomna jen třetina studentů. Požadavky typu: A budou termíny ve zkouškovém? A budou v březnu? A mě to časově nevyhovuje, nemohl bych přijít někdy jindy než na to moje cvičení? Víte já se vrátím v sobotu z hor, mohl bych si napsat ten test třeba v neděli odpoledne? V mailu jsem našel i toto: Z důvodu pracovní vytíženosti Vám oznamuji, že úkoly z předmětu Algoritmy I budu plnit až v letním semestru. Chci se zeptat, kdy budou vypsány termíny? Odpověď: Z důvodu pracovní vytíženosti v letním semestru nebudou žádné termíny. V letním semestru probíhá předmět Algoritmy II. Víte mě šéf nepustí z práce! Nešlo by to nějak? Nešlo, v práci jste tady! Jiří Dvorský (VŠB TUO) Úvodní přednáška 26 / 430
Obecné pokyny ke všem úkolům (pokrač.) Nepovolení opravy u písemné práce pokud někteří studenti nepovažují za nutné se na písemnou práci aspoň trochu připravit, já zase nepovažuji za nutné s těmito studenty ztrácet čas opravováním jejich písemek, či spíše výtvorů! Jiří Dvorský (VŠB TUO) Úvodní přednáška 27 / 430
Ukázky písemných prací Pusto, prázdno Toto není zmýlení se v odpovědi, záměna dvou pojmů... Tady prostě nic není! Jiří Dvorský (VŠB TUO) Úvodní přednáška 28 / 430
Ukázky písemných prací Co si o tom myslet? Křivka A 3 má být grafem funkce y = log 2 x zatímco křivka A 4 má být grafem funkce y = x 2. Jiří Dvorský (VŠB TUO) Úvodní přednáška 29 / 430
Ukázky písemných prací Tak takhle ne! Odpověď na otázku 4: WTF? Neumín goauldsky! Odpověď na otázku 5: DUNNO Jiří Dvorský (VŠB TUO) Úvodní přednáška 30 / 430
Konec části pro prezenční formu studia Jiří Dvorský (VŠB TUO) Úvodní přednáška 31 / 430
Kombinovaná forma studia Jiří Dvorský (VŠB TUO) Úvodní přednáška 32 / 430
Tutoriály 1. tutoriál povinný 21. září 2018 Na tomto úvodním tutoriálu Vám budou sděleny informace o organizaci studia předmětu a informace o náplni předmětu. 2. tutoriál nepovinný 5. října 2018 K tomuto datu se předpokládá zvládnutí následujících témat: První program v C++, algoritmus, program, překlad, procesor, proces. Proměnné, konstanty, datové typy. Řídící konstrukce jazyka (sekvence, větvení, cyklus). Jiří Dvorský (VŠB TUO) Úvodní přednáška 33 / 430
Tutoriály 3. tutoriál povinný 19. října 2018 V průběhu tutoriálu proběhne první test. K tomuto datu se předpokládá zvládnutí následujících témat: Strukturované programování v C++, funkce a jejich parametry, volání funkcí. Pole. Vyhledávání v poli (sekvenční, půlením intervalu). 4. tutoriál povinný 2. listopadu 2018 K tomuto datu se předpokládá zvládnutí následujících témat: Rekurze, vymezení pojmu, příklady, jednoduchý backtracking. Tento tutoriál je rozdělen do několika skupin, tutoriál proběhne na počítačové učebně, celou náplň tutoriálu bude tvořit druhý test. V systému Edison budou vypsány termíny na které se přihlásíte. Jiří Dvorský (VŠB TUO) Úvodní přednáška 34 / 430
Tutoriály 5. tutoriál nepovinný 16. listopadu 2018 Tento tutoriál se nekoná. 6. tutoriál nepovinný 30. listopadu 2018 K tomuto datu se předpokládá zvládnutí následujících kapitol: Třídění, vymezení problému, adresní třídění. Základní třídící algoritmy (třídění vkládáním, výběrem, bublinové). Pokročilé třídící algoritmy (QuickSort, HeapSort, MergeSort). Konzultace k semestrálnímu projektu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 35 / 430
Tutoriály 7. tutoriál povinný 14. prosince 2018 Tento tutoriál je rozdělen do několika skupin, tutoriál proběhne na počítačové učebně, celou náplň tutoriálu bude tvořit třetí test. V systému Edison budou vypsány termíny na které se přihlásíte. Jiří Dvorský (VŠB TUO) Úvodní přednáška 36 / 430
Úkoly první test První test se bude psát na třetím tutoriálu 19. října 2018. Opravný termín se bude psát u obhajob projektů. Bude to krátký písemný test na cca 10 až 15 minut maximálně. Test bude zaměřen na syntaxi a sémantiku jazyka C++. Jinak řečeno, otázky typu co tato konstrukce v C++ znamená, je tato konstrukce správná, jak se deklaruje proměnná, co znamená tento operátor, jak se napíše cyklus od jedné do pěti a tak dále. Jiří Dvorský (VŠB TUO) Úvodní přednáška 37 / 430
Úkoly druhý test Druhý test se bude psát na čtvrtém tutoriálu 16. listopadu 2018. Opravný termín bude ve zkouškovém období. Na začátku vymezené doby dostanete zadání, které ve zbývajícím čase naprogramujete, odladíte a předvedete. Zadání druhého testu budou obsahovat práci s cykly, podmínkami, poli, i dvourozměrnými. Podívejte se jak se používají různé druhy cyklů, různé druhy podmínek, logické operace (logický součet, součin atd.). Prostudujte si jak se pracuje s vnořenými cykly, jak je lze pomocí příkazu break a continue předčasně ukončovat atd. Prostudujte si práci s polem. Podívejte se, jak se takové pole indexuje, jak se prochází v cyklu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 38 / 430
Úkoly třetí test Třetí test se bude psát na sedmém tutoriálu 14. prosince 2018. Opravný termín bude ve zkouškovém období. Na začátku vymezené doby dostanete zadání, které ve zbývajícím čase naprogramujete, odladíte a předvedete. Zadání třetího testu bude o něco komplikovanější než v předchozím testu. Pro úspěšné zvládnutí tohoto testu je nutné abyste uměli napsat funkce s různými způsoby předávání parametrů (hodnotou, odkazem), uměli předávat do funkcí pole. A potom takové funkce správně zavolat. V tomto testu se budou provádět výpočty nad polem, hledat v poli, přepisovat hodnoty, zjišťovat počet prvků pole větší než, menší než daná hodnota, tisknout pole na obrazovku atd. Jiří Dvorský (VŠB TUO) Úvodní přednáška 39 / 430
Úkoly projekt V předmětech Algoritmy I a Programování I je v kombinované formě studia požadováno po studentech vypracování projektu. Po dohodě mezi garanty předmětů budou studenti této formy studia, mající zapsány oba dva předměty současně, vypracovávat jen jeden projekt. Studenti mající zapsán pouze jeden z těchto předmětů, jde většinou o studenty opakující předmět či celý ročník, vypracují projekt samozřejmě v tom předmětu, který mají zapsán. Cca v polovině října bude na webu tutora zveřejněno: rozdělení studentů podle předmětu do kterého budou zpracovávat projekt, zadání projektů v předmetu Algoritmy I a rozdělení zadání projektů mezi studenty zpracovávající projekt v předmětu Algoritmy I. Jiří Dvorský (VŠB TUO) Úvodní přednáška 40 / 430
Úkoly projekt (pokrač.) Obdobné informace k projektům zveřejní i tutor předmětu Programování I. Projekt se odevzdává jako řešení (solution) pro vývojové prostředí Visual Studio 2015/2017 ve formě zip archivu. Způsob odevzdání bude upřesněn. Před odevzdáním projektu odstraňte z adresáře s Vaším projektem všechny spustitelné soubory (exe, bat). Striktní deadline pro odevzdání projektu je 21. prosince 2018 23:59. Obhajoba proběhne v zápočtovém týdnu. Termíny budou vypsány v systému Edison. K obhajobě projektu není opravný termín. Zásadním kritériem pro úspěšnou obhajobu je funkční program. Jiří Dvorský (VŠB TUO) Úvodní přednáška 41 / 430
Hodnocení úkolů Je nutné splnit všechny výše uvedené úkoly, a zároveň u všech úkolů aspoň minimální počet bodů. Minimální počet bodů Maximální počet bodů První test 10 20 Druhý test 10 20 Třetí test 10 20 Projekt 21 40 Celkem 51 100 Všechna bodová hodnocení jsou průběžně zapisována do systému Edison. Jiří Dvorský (VŠB TUO) Úvodní přednáška 42 / 430
Obecné poznámky k úkolům U všech úkolů jste povinni se prokázat svou studentskou kartou nebo jiným oficiálním dokladem totožnosti. Bez prokázání totožnosti Vám nebude výsledek započítán. Každý prohřešek vůči studijnímu řádu u testů a písemné práce bude nekompromisně postihován. Jde především o opisování, plagiátorství, a záměnu studentů. Je zakázáno zadání testů, písemek atd. kopírovat, fotit mobily, fotoaparáty, skenovat či jakkoliv jinak kopírovat, rozmnožovat, přenášet elektronickým způsobem a podobně. Předmět je ukončen klasifikovaným zápočtem. Nevztahuje se tudíž na něj požadavek dvou opravných pokusů, jak to vyžaduje studijní řád u zkoušky. Jiří Dvorský (VŠB TUO) Úvodní přednáška 43 / 430
Pokyny k prvnímu, druhému a třetímu testu Na každý z těchto úkolů máte jeden řádný pokus a jeden opravný pokus. Na všechny tři úkoly budou v Edisonu vypsány řádné termíny, kde se budete hlásit. Na první test bude vypsán jeden řádný termín. Na druhý a třetí test bude v jeden den vypsáno několik řádných termínů (kapacita počítačových učeben je menší, test musí běžet na několik kol ). Absolvování prvního, druhého a třetího testu v řádném termín tj. na příslušném tutoriálu je povinné. Pokud se řádného termínu testu nezúčastníte, bez ohledu na to zda jste byli přihlášeni nebo ne, je vaší povinností se garantovi předmětu předem omluvit. Termín předem znamená nejpozději do začátku termínu, na kterém máte daný test psát. Postačující je omluva emailem na adresu garanta předmětu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 44 / 430
Pokyny k prvnímu, druhému a třetímu testu (pokrač.) Pokud se neomluvíte, daný úkol bude považován za nesplněný (0 bodů) a opravný termín vám nebude umožněn. Důsledkem je pak neúspěšné ukončení celého předmětu. Pokud se řádného termínu zúčastníte a neuspějete s řešením zadaného úkolu, máte nárok na opravný termín. Obdobná povinnost omluvit se platí i pro opravný termín. Opravné termíny budou vypsány ve zkouškovém období. Jiří Dvorský (VŠB TUO) Úvodní přednáška 45 / 430
Konec části pro kombinovanou formu studia Jiří Dvorský (VŠB TUO) Úvodní přednáška 46 / 430
Software pro výuku Primární software: Vývojové prostředí pro C++ Dokumentace k C++ Doplňkový software: Dokumentační systém Doxygen, www.doxygen.org Typografický systém L A TEX, www.cstug.cz Jiří Dvorský (VŠB TUO) Úvodní přednáška 47 / 430
Vývojová prostředí pro C++ Na učebnách je pro výuku k dispozici Microsoft Visual Studio 2017 (VS2017). Pro domácí přípravu si stáhněte Visual Studio Community 2017 (VS2017) a to buď prostřednictvím: Microsoft Imagine, http://elms.cs.vsb.cz/ nebo přímo ze stránek Visual Studio Community, https://www.visualstudio.com/cs/vs/community/. Vývojové prostředí VS2017 spolu s integrovaným překladačem jazyka C++ bude užíváno jednak pro výuku a jednak jako referenční překladač při hodnocení Vašich případných projektů. Jiří Dvorský (VŠB TUO) Úvodní přednáška 48 / 430
Studijní literatura Učební materiály lze rozdělit do dvou skupin: literatura o algoritmech a datových strukturách a literatura o programovacím jazyku C++. Níže uvedenou literaturu využijete v předmětech: Algoritmy I a Algoritmy II, Programování I a Programování II. Jiří Dvorský (VŠB TUO) Úvodní přednáška 49 / 430
Základní literatura o algoritmech 1. Dvorský J.: Algoritmy, učební text, studijní opora v terminologii kombinované formy studia, dostupné na http://www.cs.vsb.cz/dvorsky/opora.html 2. Wirth, N.: Algoritmy a štruktúry údajov, Alfa, Bratislava, 1989 3. Sedgewick R.: Algoritmy v C, části 1-4, SoftPress, Praha, 2003. Existuje i v anglické verzi, náročná, ale vynikající kniha. 4. Wróblewski P.: Algoritmy. Datové struktury a programovací techniky, Computer Press, Praha 2003, druhé vydání 2015 5. Cormen, Leiserson, Rievest: Introduction to Algorithms, MIT Press, 2001. Jiří Dvorský (VŠB TUO) Úvodní přednáška 50 / 430
Doplňková literatura o algoritmech 1. Topfer, P.: Algoritmy a programovací techniky, Prometheus, Praha 1995. 2. Virius, M.: Základy algoritmizace, ČVUT Praha, 1997, skripta. 3. Honzík, J. a kolektiv: Programovací techniky, VUT Brno, 1987, skripta. 4. Harel, D.: Algorithmics, The Spirits of Computing, Addison-Wesley Publishing Company, 1993. 5. Sedgewick, R.: Algorithms in C++, Addison-Wesley Publishing Company, 1992. 6. Wood, D.: Data Structures, Algorithms and Performance, Addison-Wesley Publishing Company, 1993. Jiří Dvorský (VŠB TUO) Úvodní přednáška 51 / 430
Základní literatura o C++ O jazyce C++ existuje v dnešní době řada česky psaných knih. Následující knihy můžete využít pro své studium: 1. Liberty J., Jones B. L.: Naučte se C++ za 21 dní, 2. aktualizované vydání, ComputerPress, 2007, ISBN 978-80-251-1583-1. Zdařilá učebnice jazyka C++. Kniha je sice poněkud tlustá, nicméně je rozdělena do 21 lekcí rozumného rozsahu. Pokrývá veškerou látku, kterou bychom měli za oba semestry probrat. 2. Eckel B.: Myslíme v jazyku C++, Grada Publishing, 2000, ISBN 80-247-9009-2. Kniha od klasika ve výuce jazyka C++. Opět pokrývá veškerou látku, kterou bychom měli za oba semestry probrat.. Kniha je dostupná v angličtině i online na serveru http://www.mindviewinc.com/index.php 3. Stroustrup, B.: C++ Programovací jazyk. Česky: BEN-technická literatura, Praha 1997. Vynikající kniha přímo od autora jazyka C++. Kniha dosti rozsáhlá, ale na druhou stranu obsahující naprosto vše co lze o C++ napsat. Jiří Dvorský (VŠB TUO) Úvodní přednáška 52 / 430
Doplňková literatura o C++ Dále je možné čerpat zajímavé informace z následujících knih: 1. Virius M.: Pasti a propasti jazyka C++, 2. aktualizované a rozšířené vydání, ComputerPress, 2005, ISBN 80-251-0509-1. V této knize naleznete podrobné vysvětlení, pro začátečníka mnohdy překvapivého chování překladače jazyka C++. 2. Alexandrescu A.: Moderní programování v C++ Šablony, generické komponenty a návrhové vzory, ComputerPress 2004, ISBN 80-251-0370-6. Pro ty z Vás, kteří se hodlají dozvědět něco o trendech ve využití jazyka C++, nabízí tato kniha rozšiřující informace. Pozor, nejedná se přímo o učebnici jazyka C++. 3. Koenig A., Moo B.E.: Rozumíme C++, ComputerPress, 2003, ISBN 80-7226-656-X. Alternativní učebnice jazyka C++ s odlišnou metodou výkladu než předchozí doporučené. Výuka je vedena přes využití knihoven jazyka C++, okamžitý nástup objektového programování atd. Jiří Dvorský (VŠB TUO) Úvodní přednáška 53 / 430
Ostatní literatura o C++ 1. Šaloun, P.: Programovací jazyk C++ pro zelenáče, Neocortex Praha, 2005, ISBN 80-86330-18-4. 2. Richta, K., Šaloun, P.: Programovací jazyk C, skriptum ČVUT, Praha 1998 3. Šaloun, P.: Programovací jazyk C. Skriptum FEI VŠB-TU Ostrava 1994 4. Kernighan, B., Ritchie, D.: Programovací jazyk C, Alfa Bratislava, 1988 5. Herout, P., Rudolf, V., Šmrha, P.: ABC programátora v jazyce C, nakladatelství KOPP, České Budějovice, 1992 6. Vondrák, I., Šaloun, P.: Objektově orientované programování, skriptum VŠB Ostrava, 1994 7. Horstmann, C. S.: Vyšší škola objektového návrhu v C++. Science, Veletiny 1997 8. Večerka, A.: Jazyk C++: popis jazyka s příklady, skriptum UP Olomouc, Olomouc 1996, ISBN 80-7067-658-2 Jiří Dvorský (VŠB TUO) Úvodní přednáška 54 / 430
Ostatní učební materiály Prezentace z přednášek Prezentace z přednášek nejsou studijním materiálem. Slouží přednášejícímu jako osnova jeho výkladu a studentům jako přehled probrané látky. Pročtení těchto několika prezentací není možné považovat za dostatečnou přípravu k tomu slouží studijní literatura a hlavně vlastní, samostatné programování. Další materiály budou případně doplněny na webových stránkách předmětu. Jiří Dvorský (VŠB TUO) Úvodní přednáška 55 / 430
Děkuji za pozornost Jiří Dvorský (VŠB TUO) Úvodní přednáška 56 / 430