Detail předmětu
Základy programování
FIT-IZPAk. rok: 2019/2020
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).
Jazyk výuky
Počet kreditů
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
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.
Prerekvizity
Způsob a kritéria hodnocení
- Hodnocené domácí úkoly (projekty) s obhajobou - 26 bodů.
- Počítačová cvičení - 8 bodů.
- Půlsemestrální test - 12 bodů.
- Závěrečná písemná zkouška - 54 body.
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í.
Učební cíle
Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky
- Vypracování a odevzdání 3 projektů.
- Obhajoba projektů v počítačové učebně.
- 10 počítačových cvičení.
- Odevzdaná a kontrolovaná dokumentace zdrojového kódu k jednomu projektu.
- 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ě 25 body. V opačném případě bude zkouška hodnocena 0 body.
- Formu nahrazování zameškané výuky stanoví asistent.
Základní literatura
Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
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.
The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
Doporučená literatura
Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
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.
Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.
McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670.
Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
Schildt, H.: Teach Yourself C, McGraw-Hill Companies, 2001.
Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
Teaching materials available on WWW.
The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Ú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.
Cvičení odborného základu
Vyučující / Lektor
Ing. Štěpán Rydlo
Ing. Jiří Hynek, Ph.D.
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Jiří Matyáš, Ph.D.
Ing. Zuzana Beníčková
Ing. Aleš Smrčka, Ph.D.
Ing. Petr Veigend, Ph.D.
Ing. Martin Tomko
Ing. Roman Hypský
Ing. Radek Iša
Mgr. Roman Trchalík, Ph.D.
Ing. Jaroslav Rozman, Ph.D.
Ing. Martin Sakin
Ing. Dominika Klobučníková
Ing. Viktor Malík, Ph.D.
Ing. Martin Vondráček
Ing. Richard Pánek, Ph.D.
doc. RNDr. Milan Češka, Ph.D.
Ing. Jakub Husa, Ph.D.
Osnova
- 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ů
Cvičení na počítači
Vyučující / Lektor
Ing. Jan Tinka
Ing. Zuzana Beníčková
Ing. Dominika Klobučníková
Ing. Radek Iša
Ing. Martin Sakin
Ing. Jiří Hynek, Ph.D.
Ing. Jakub Husa, Ph.D.
Ing. Richard Pánek, Ph.D.
Ing. Martin Tomko
Mgr. Roman Trchalík, Ph.D.
Ing. Jiří Matyáš, Ph.D.
doc. RNDr. Milan Češka, Ph.D.
Ing. Petr Veigend, Ph.D.
Ing. Štěpán Rydlo
Ing. Roman Hypský
Ing. Viktor Malík, Ph.D.
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Martin Vondráček
Ing. Aleš Smrčka, Ph.D.
Osnova
- Ověření seznámení se s provozním řádem CVT FIT, důležité informace a pokyny, informace ke studiu, přihlášení se do týmu laboratoří, (kdo nestihl ve vypsaném termínu: Zapsané předměty --> IZP --> Termín počítačových laboratoří), Unix pro začínající studenty, 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.
Projekt
Vyučující / Lektor
Ing. Richard Pánek, Ph.D.
Ing. Dominika Klobučníková
Ing. Petr Veigend, Ph.D.
Ing. Radek Iša
Mgr. Ing. Pavel Očenášek, Ph.D.
doc. RNDr. Milan Češka, Ph.D.
Ing. Jiří Matyáš, Ph.D.
Ing. Aleš Smrčka, Ph.D.
Ing. Jiří Hynek, Ph.D.
Ing. Martin Tomko
Ing. Viktor Malík, Ph.D.
Ing. Jakub Husa, Ph.D.
Ing. Martin Vondráček
Mgr. Roman Trchalík, Ph.D.
Ing. Jaroslav Rozman, Ph.D.
Ing. Štěpán Rydlo
Ing. Roman Hypský
Ing. Jan Tinka
Ing. Zuzana Beníčková
Osnova
- Základní programové konstrukce v jazyce C.
- Iterační výpočty.
- Práce s maticemi.
- Dokumentace zdrojového kódu projektu.