Detail předmětu
Základy programování
FIT-IZPAk. rok: 2025/2026
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
Vstupní znalosti
Pravidla hodnocení a ukončení předmětu
- Cvičení na počítači: Student může během semestru získat 10 bodů. Obvykle na každém z 10 cvičení může student získat 1 bod za svoji aktivní účast. Formu a podmínky nahrazování zameškané výuky stanoví cvičící.
- Vypracování projektů: V průběhu výuky se ve stanovených termínech odevzdávají 2 projekty, za které je možné získat celkem 24 bodů. Zadání projektů bude zpřístupněno nejpozději 2 týdny před termínem odevzdání.
- Půlsemestrální test: Během semestru proběhne písemný test, za který student může získat 12 bodů. Půlsemestrální test nemá náhradní termín.
- Zápočet: Pro získání zápočtu musí student v součtu ze cvičení, projektů a půlsemestrálního testu získat alespoň 23 bodů. Zároveň musí získat minimálně 6 bodů za cvičení v laboratořích a 1 bod za každý odevzdaný projekt. V případě odhalení podvodného chování (nedovolená spolupráce na projektu nebo plagiátorství) zápočet nebude udělen a bude zváženo zahájení disciplinárního řízení.
- Závěrečná písemná zkouška: Písemná zkouška s jedním řádným a dvěma opravnými termíny je hodnocena 54 body. 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.
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. Naučit se vytvářet programy ve vyšších programovacích jazycích. Osvojit si odborné pojmy z oblasti programování. 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.
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.
Základní literatura
Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
Doporučená literatura
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.
Elearning
Zařazení předmětu ve studijních plánech
- Program BAK-MIn bakalářský 2 ročník, zimní semestr, volitelný
- Program BPC-AMT 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 BPC-EKT bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-IBE 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-TLI bakalářský 0 ročník, zimní semestr, volitelný
- Program BPC-NCP bakalářský 0 ročník, zimní semestr, volitelný
- Program BIT bakalářský 1 ročník, zimní semestr, povinný
- Program BIT bakalářský 1 ročník, zimní semestr, povinný
- Program DES_B bakalářský 1 ročník, zimní semestr, volitelný
2 ročník, zimní semestr, volitelný
4 ročník, zimní semestr, volitelný
Typ (způsob) výuky
Přednáška
Vyučující / Lektor
Osnova
- Principy činnosti programu, datové typy, proměnné
- Skladba programu, řídicí struktury
- Soubory, pole, strukturované datové typy
- Tvorba funkcí, datový typ ukazatel
- Verzování, ladění programů
- Vektory a matice.
- Dynamické datové struktury.
- Vyhledávání a řazení.
- Pokročilé ladění programů, verifikace a validace.
- Rekurze v programování.
- Modulární stavba programů
- Algoritmizace, stavové automaty
- Rekurentní a numerické výpočty
Seminář
Vyučující / Lektor
Osnova
- 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
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. Juraj Lazúr
Ing. Jaroslav Rozman, Ph.D.
Ing. Jan Klhůfek
Ing. Daniel Dolejška
Ing. Radek Hranický, Ph.D.
Ing. Michal Rozsíval
Ing. David Kozák
Ing. Michal Koutenský
Ing. Petr John
RNDr. Libor Škarvada
Ing. Jakub Husa, Ph.D.
Ing. Ondřej Vašíček
Ing. František Grézl, Ph.D.
Ing. Petr Veigend, Ph.D.
Osnova
- Práce s textem.
- Práce s datovými strukturami.
Elearning