Fakulta informačních technologií VUT v Brně

Detail předmětu

Základy programování

IZP Ak. rok 2006/2007 zimní semestr 7 kreditů

Aktuální akademický rok

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).

Garant předmětu

Jazyk výuky

česky, anglicky

Zakončení

zápočet+zkouška (písemná)

Rozsah

39 hod. přednášky, 12 hod. pc laboratoře, 14 hod. projekty

Bodové hodnocení

50 zkouška, 15 půlsemestrální test, 35 projekty

Zajišťuje ústav

Přednášející

Cvičící

Bartík Vladimír, Ing., Ph.D. (UIFS FIT VUT)
Cerhák Michal, Ing. (UITS FIT VUT)
Grulich Lukáš, Ing. (UITS FIT VUT)
Holík Lukáš, Mgr., Ph.D. (UITS FIT VUT)
Kroulík Jan, Ing. (UIFS FIT VUT)
Lukáš Roman, Ing., Ph.D. (UIFS FIT VUT)
Martinek David, Ing. (UIFS FIT VUT)
Rychnovský Lukáš, Ing. (UIFS FIT VUT)
Schönecker Rudolf, Ing. (UIFS FIT VUT)
Skřivánek Roman, Ing. (UITS FIT VUT)
Vyskočil Michal, Ing. (UPGM FIT VUT)
Weiss Petr, Ing. (UIFS FIT VUT)

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.

Dovednosti, znalosti a kompetence obecné

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 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.

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 práce s počítačem na úrovni střední školy.

Literatura studijní

  • McConnell, S.: Code Complete, Microsoft Press, 2004 ISBN 0735619670
  • Soubor materiálů prezentovaných na přednáškách bude dostupný na WWW.

Literatura referenční

  • Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
  • 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.
  • Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2002, ISBN 80-7226-715-9.
  • Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2003, ISBN 80-85828-21-9. 
  • Kernighan, B., Ritchie, D.: Programovací jazyk C, Computer Press, 2006, ISBN 80-251-0897-X.

Osnova přednášek

  1. Vlastnosti algoritmů, notace a zápis algoritmů.
  2. Techniky řešení problémů. Návrh a implementace algoritmů.
  3. Principy vyšších programovacích jazyků. Symboly, oddělovače, konstanty, identifikátory, proměnné, reprezentace čísel, návěští.
  4. Koncepce dat. Jednoduché datové typy. Výrazy a příkazy.
  5. Řídící struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
  6. Funkce, parametry funkcí.
  7. Textové soubory, standardní vstup/výstup.
  8. Strukturované datové typy.  
  9. Rekurze v programování.
  10. Typ ukazatel a dynamické proměnné. Spojové struktury.
  11. Složitost algoritmů.
  12. Základní metody řazení a vyhledávání.
  13. Ladění a dokumentace programu.

Osnova ostatní - projekty, práce

  1. Převod čísel mezi různými notacemi.
  2. Řešení rekurentních problémů.
  3. Výpočty s maticemi.
  4. Řazení dle české abecedy.

Průběžná kontrola studia

Hodnocené domácí úkoly s obhajobou: 35 bodů. Půlsemestrální test: 15 bodů. Závěrečná písemná zkouška: 50 bodů.

Kontrolovaná výuka

  • Vypracování 4 projektů.
  • Obhajoba projektů v průběhu laboratorních cvičení.
  • Odevzdaná a kontrolovaná dokumentace ke 2 úkolům.
  • Půlsemestrální test.
  • Závěrečná písemná zkouška.

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 nejméně 20 bodů z projektů, půlsemestrálního testu a případných prémiových bodů.
Nahoru