Detail předmětu
Základy programování
IZP Ak. rok 2021/2022 zimní semestr 7 kreditů
Algoritmy a řešení problémů: strategie řešení problémů, strukturovaná dekompozice, pojem a vlastnosti algoritmu. Základní programovací konstrukty: syntaxe a sémantika vyššího programovacího jazyka, proměnné, typy, výrazy, řídicí struktury, procedury a funkce, předávání parametrů, vstupy/výstupy, zpracování výjimečných stavů. Základní datové struktury: primitivní datové typy, strukturované datové typy: pole, záznam, soubor, znakové řetězce. Dynamické datové struktury, typ ukazatel. Strategie pro volbu vhodné datové struktury. Rekurze, pojem rekurze. Globální a lokální proměnné. Jednoduché rekurzivní funkce (procedury). Modulární návrh a abstrakce. Pojmy a algoritmy budou ilustrovány využitím vhodného programovacího jazyka (ISO/IEC 9899:1999 Programming languages - C).
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
- 12 hod. cvičení
- 22 hod. pc laboratoře
- 5 hod. projekty
Bodové hodnocení
- 10 bodů numerická cvičení
- 24 bodů projekty
Zajišťuje ústav
Přednášející
Cvičící
Dolejška Daniel, Ing. (UIFS)
Grézl František, Ing., Ph.D. (UPGM)
Harmim Dominik, Ing.
Hříbek David, Ing.
Hurta Martin, Ing. (UPSY)
Hynek Jiří, Ing., Ph.D. (UIFS)
Koutenský Michal, Ing. (UIFS)
Kozák David, Ing. (UITS)
Malík Viktor, Ing., Ph.D. (UITS)
Očenášek Pavel, Mgr. Ing., Ph.D.
Omachtová Alena, Ing. (CVT)
Orsák Michal, Ing. (UPSY)
Pavela Jiří, Ing. (UITS)
Pomikálek Jiří, Ing.
Rozman Jaroslav, Ing., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Šišmiš Lukáš, Ing. (UPSY)
Vašíček Ondřej, Ing. (UITS)
Vlnas Michal, Ing. (UPGM)
Žufan Petr, Ing.
Stránky předmětu
Získané dovednosti, znalosti a kompetence z předmětu
Student se naučí analyzovat a navrhovat jednoduché algoritmy pro počítače. Seznámí se se základní koncepcí programovacích jazyků. Naučí se vytvářet programy ve vyšších programovacích jazycích. Porozumí EBNF pro popis syntaxe programovacího jazyka. Osvojí si odborné pojmy z oblasti programování, syntax a sémantiku programovacího jazyka. Naučí se používat prostředky pro ladění programů. Naučí se dokumentovat, obhajovat a prezentovat dosažené výsledky.
Student se naučí řešit jednoduché problémy na počítači formou projektů. Naučí se vytvářet programovou dokumentaci a obhájit výsledky řešeného projektu.
Cíle předmětu
Naučit se analyzovat vybrané problémy a stanovit elementární algoritmy k jejich řešení. Seznámit se s principy a vlastnostmi vyšších programovacích jazyků a zvolený jazyk ovládnout na úrovni nezbytné pro implementaci algoritmů. Seznámit se s organizací dat při řešení problémů. Aktivně ovládnout základní algoritmy a umět je aplikovat v praktických problémech. Seznámit se s principy testování programů. Naučit se používat prostředky pro ladění programů. Naučit se dokumentovat, obhajovat a prezentovat dosažené výsledky.
Proč je předmět vyučován
Po absolvování základů programování studenti budou znát základní pojmy, algoritmy a principy vyšších programovacích jazyků. Student bude dobře ovládat programování a ladění v jazyce C. Získané znalosti jsou použitelné v různých oblastech vývoje softwarových produktů.
Požadované prerekvizitní znalosti a dovednosti
Předmět je zařazen v zimním semestru prvního ročníku bakalářského studijního programu. U studentů se proto předpokládají pouze běžné znalosti matematiky a práce s počítačem na úrovni střední školy.
Technické vybavení
volně dostupné
- Code::Blocks
Literatura studijní
- McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670.
- Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.
- Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
- Teaching materials available on WWW.
- Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
- Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
- BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
- Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
- The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
- Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
- Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
- Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
- Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
- Schildt, H.: Teach Yourself C, McGraw-Hill Companies, 2001.
Literatura referenční
- BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
- Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
- Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
- Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
- Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
- The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
- Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
- Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Osnova přednášek
- Úvodní informace k organizaci výuky. Struktura a cíle předmětu. Vlastnosti algoritmů, notace a zápis algoritmů.
- Techniky řešení problémů. Návrh a implementace algoritmů.
- Principy vyšších programovacích jazyků. Symboly, oddělovače, konstanty, identifikátory, proměnné, reprezentace čísel, návěští.
- Koncepce dat. Jednoduché datové typy. Výrazy a příkazy.
- Řídicí struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
- Funkce, parametry funkcí.
- Ladění programů.
- Textové soubory, standardní vstup/výstup.
- Strukturované datové typy.
- Rekurze v programování.
- Typ ukazatel a dynamické proměnné. Spojové struktury.
- Pokročilé ladění programů, verifikace a validace, dokumentace zdrojového kódu.
- Modulární stavba programu.
Osnova numerických cvičení
Demonstrační cvičení:
- Základní nástroje pro vývoj programů
- Překlad a spouštění programů
- Jednoduché programy v jazyce C
- Datové typy, přetypování
- Řídicí struktury
- Funkce, práce s řetězci
- Základní metody ladění, ladicí nástroje
- Vstup/výstup programů
- Rekurze
- Práce s pamětí
- Dokumentace zdrojového kódu, základy testování
- Modulární programování, základy zásuvných modulů
Osnova počítačových cvičení
- Ověření seznámení se s provozním řádem CVT FIT, přihlášení se do Termínu laboratoří, (kdo nestihl ve vypsaném termínu: Zapsané předměty --> IZP --> Termín počítačových laboratoří), diskusní skupiny IZP (každý student napíše zkušební dotaz a odpověď na dotaz v těchto diskusích), vývojové prostředí jazyka C.
- Další cvičení korespondují s náplní jednotlivých přednášek a prakticky procvičují prezentovanou látku.
Osnova ostatní - projekty, práce
- Práce s textem.
- Práce s datovými strukturami.
Průběžná kontrola studia
- Hodnocené domácí úkoly (projekty) s obhajobou - 24 bodů.
- Počítačová cvičení - 10 bodů.
- Půlsemestrální test - 12 bodů.
- Závěrečná písemná zkouška - 54 body.
Metody vyučování
Výuka se realizuje formou přednášek cvičení a řešení projektů. Přednášky mají charakter výkladu základních principů, metodologie dané disciplíny, problémů a jejich vzorových řešení. Cvičení a řešení projektů podporuje zejména praktické ovládnutí látky vyložené na přednáškách nebo zadané k samostatnému nastudování za aktivní účasti studentů.
Kontrolovaná výuka
- Vypracování a odevzdání 2 projektů.
- Obhajoba projektů v počítačové učebně.
- 10 počítačových cvičení.
- Půlsemestrální test.
- Závěrečná písemná zkouška. Pro získání bodů ze semestrální zkoušky je nutné zkoušku vypracovat tak, aby byla hodnocena nejméně 20 body. V opačném případě bude zkouška hodnocena 0 body.
- Formu nahrazování zameškané výuky stanoví asistent.
Podmínky zápočtu
- Pro získání zápočtu a tím pro připuštění k závěrečné zkoušce musí student získat celkově nejméně 20 bodů z projektů, cvičení a půlsemestrálního testu.
- Pokud bude odhaleno plagiátorství nebo nedovolená spolupráce na projektech, zápočet nebude udělen a dále bude zváženo zahájení disciplinárního řízení.
Způsob kontaktu s vyučujícím
Vyučující mají vypsané konzultační hodiny.
Zařazení předmětu ve studijních plánech