Detail předmětu
Základy programování
FIT-IZPAk. rok: 2022/2023
Základní programovací konstrukty 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. Ladění, testování a dokumentace programu. 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
Naučí se vytvářet programy ve vyšších programovacích jazycích. Osvojí si odborné pojmy z oblasti programování. 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.
Prerekvizity
Plánované vzdělávací činnosti a výukové metody
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ů.
Způsob a kritéria hodnocení
- Hodnocené domácí úkoly (projekt) 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.
Učební cíle
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.
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í 2 projektů.
- Obhajoba projektu 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ě 23 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.
Elearning
Zařazení předmětu ve studijních plánech
- Program BIT bakalářský 1 ročník, zimní semestr, povinný
- Program BIT bakalářský 1 ročník, zimní semestr, povinný
- Program IT-BC-3 bakalářský
obor BIT , 1 ročník, zimní semestr, povinný
- Program BPC-IBE bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-TLI bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-EKT bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-AMT bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-MET bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-SEE bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-AUD bakalářský
specializace AUDB-ZVUK , 0 ročník, zimní semestr, volitelný
specializace AUDB-TECH , 0 ročník, zimní semestr, volitelný - Program BAK-MIn bakalářský 2 ročník, zimní semestr, volitelný
- Program VUB bakalářský
obor VU-D , 2 ročník, zimní semestr, volitelný
obor VU-D , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
obor VU-VT , 2 ročník, zimní semestr, volitelný
obor VU-VT , 2 ročník, zimní semestr, volitelný
obor VU-VT , 2 ročník, zimní semestr, volitelný
obor VU-VT , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
obor VU-VT , 2 ročník, zimní semestr, volitelný
obor VU-D , 2 ročník, zimní semestr, volitelný
obor VU-VT , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
obor VU-IDT , 2 ročník, zimní semestr, volitelný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Úvodní informace k organizaci výuky. Verzování a pracovní nástroje programátora.
- Principy programovacích jazyků. Řídicí struktury programovacích jazyků.
- Typ ukazatele, pole, funkce.
- Textové soubory, standardní vstup/výstup. Strukturované datové typy.
- Ladění programů.
- Rekurentní problémy, numerické výpočty a algoritmy.
- Vektory a matice.
- Vyhledávání a řazení.
- Rekurze v programování.
- Pokročilé ladění programů, verifikace a validace, dokumentace zdrojového kódu.
- Dynamické datové struktury.
- Spojové struktury.
- Modulární stavba programu.
Cvičení odborného základu
Vyučující / Lektor
Osnova
Demonstrační cvičení:
- Vývojové nástroje.
- Základní práce s polem, řetězec, manuálové stránky.
- Práce s polem, funkce.
- Standardní vstup a výstup, čtení z/zápis do souboru.
- Ladění programů.
- Iterační výpočty.
- Řídicí smyčka, automat.
- Dynamická alokace paměti.
- Rekurze.
- Pokročilé ladění a dokumentace.
- Dynamické struktury.
- Modulární stavba programů.
Cvičení na počítači
Vyučující / Lektor
Ing. Jakub Husa, Ph.D.
Ing. Jaroslav Rozman, Ph.D.
Ing. Jakub Chlebík
Ing. Roman Andriushchenko
Ing. Viktor Malík, Ph.D.
Ing. Radek Hranický, Ph.D.
Ing. Miloš Musil, Ph.D.
Ing. Martin Hurta
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Jan Zavřel
Ing. David Kozák
Ing. Petr John
Ing. Daniel Dolejška
Ing. Dominik Harmim
Osnova
- První programy a základní konstrukce
- Cyklus, první práce s poli
- Řetězce
- Funkce a vnořené cykly
- Datové struktury
- Úvod do ukazatelů
- Práce s ukazateli
- Dynamická alokace, ladicí techniky a nástroje
- Algoritmizace, rekurze
- Strukturované datové typy
Projekt
Vyučující / Lektor
Ing. Jaroslav Rozman, Ph.D.
Ing. David Kozák
Ing. Daniel Dolejška
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Jan Zavřel
Ing. Radek Hranický, Ph.D.
Ing. Petr John
Ing. Jakub Chlebík
Ing. František Grézl, Ph.D.
Ing. Jakub Husa, Ph.D.
Ing. Miloš Musil, Ph.D.
Ing. Martin Hurta
Ing. Roman Andriushchenko
Osnova
- Práce s textem.
- Práce s datovými strukturami.
Elearning