Detail předmětu

Základy programování- algoritmy

FEKT-BPC-IZPAk. rok: 2020/2021

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, přiřazení, ří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í procedury. Modulární návrh a abstrakce. Pojmy a algoritmy budou ilustrovány využitím vhodného programovacího jazyka (ISO/IEC 9899: Programming languages - C).

Jazyk výuky

čeština

Počet kreditů

6

Výsledky učení 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.

Prerekvizity

Jsou požadovány znalosti na úrovni středoškolského studia.

Plánované vzdělávací činnosti a výukové metody

Metody vyučování závisejí na způsobu výuky a jsou popsány článkem 7 Studijního a zkušebního řádu VUT.

Způsob a kritéria hodnocení

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). Zkouška z předmětu IZP bude probíhat prezenčně.

Osnovy výuky

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.
Řídící struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
Funkce, parametry funkcí.
Textové soubory, standardní vstup/výstup.
Strukturované datové typy.
Rekurze v programování.
Typ ukazatel a dynamické proměnné. Spojové struktury.
Základní metody řazení.
Základní metody vyhledávání.
Verifikace programů, ladění a dokumentace.

Učební cíle

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 hodnocením složitosti algoritmů. 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

Vymezení kontrolované výuky a způsob jejího provádění stanoví každoročně aktualizovaná vyhláška garanta předmětu.

Základní literatura

Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2008, ISBN 978-80-7232-351-7.
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.

Doporučená literatura

Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.

Zařazení předmětu ve studijních plánech

  • Program BPC-AMT bakalářský 0 ročník, zimní semestr, volitelný

  • Program BPC-AUD bakalářský

    specializace AUDB-TECH , 0 ročník, zimní semestr, volitelný
    specializace AUDB-ZVUK , 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ý

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

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.
Řídící struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
Funkce, parametry funkcí.
Textové soubory, standardní vstup/výstup.
Strukturované datové typy.
Rekurze v programování.
Typ ukazatel a dynamické proměnné. Spojové struktury.
Základní metody řazení.
Základní metody vyhledávání.
Ladění a dokumentace programu.

Cvičení na počítači

12 hod., nepovinná

Vyučující / Lektor

Osnova

Seznámení s vývojovým prostředím programů v jazyce C v MS Windows a v Linuxu. Editace programů. Struktura programů. Nápověda. Nástroje ladění programů.
Jednoduché programy v jazyce C, zpracování parametrů příkazové řádky, práce se standardním I/O.
Analýza, návrh ke 2. projektu, ukázka dokumentace.
Práce s poli, se soubory.
Standardní knihovny. Jednoduché programy v jazyku C.
Datový typ ukazatel, práce s dynamicky alokovanými datovými strukturami.

Projekt

14 hod., nepovinná

Vyučující / Lektor

Osnova

Řešení a obhajoba projektů:
Vstupy, výstupy, parametry a chybové stavy programu.
Iterační výpočty.
Výpočty s maticemi.
Řazení dle české abecedy.