Detail předmětu

Základy programování

FIT-IZPAk. rok: 2017/2018

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

čeština

Počet kreditů

7

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

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.

Způsob a kritéria hodnocení

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

Osnovy výuky

    Osnova přednášek:
    1. Úvodní informace k organizaci výuky. Struktura a cíle předmětu. 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. Řídicí struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
    6. Funkce, parametry funkcí.
    7. Ladění programů.
    8. Textové soubory, standardní vstup/výstup.
    9. Strukturované datové typy.
    10. Rekurze v programování.
    11. Typ ukazatel a dynamické proměnné. Spojové struktury.
    12. Pokročilé ladění programů, verifikace a validace, dokumentace zdrojového kódu.
    13. Modulární stavba programu.

    Osnova numerických cvičení:
    Demonstrační cvičení:
    1. Základní nástroje pro vývoj programů
    2. Překlad a spouštění programů
    3. Jednoduché programy v jazyce C
    4. Datové typy, přetypování
    5. Řídicí struktury
    6. Funkce, práce s řetězci
    7. Základní metody ladění, ladicí nástroje
    8. Vstup/výstup programů
    9. Rekurze
    10. Práce s pamětí
    11. Dokumentace zdrojového kódu, základy testování
    12. Modulární programování, základy zásuvných modulů

    Osnova počítačových cvičení:
    1. Seznámení s provozním řádem CVT FIT , důležité informace a pokyny, informace ke studiu, rozdělení a přihlášení se do laboratoří, (Zapsané předměty --> IZP --> Termín 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.
    2. Další cvičení korespondují s náplní jednotlivých přednášek a prakticky procvičují prezentovanou látku.

    Osnova ostatní - projekty, práce:
    1. Základní programové konstrukce v jazyce C.
    2. Iterační výpočty.
    3. Práce s maticemi.
    4. Dokumentace zdrojového kódu projektu.

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 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í 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.
  • Formu nahrazování zameškané výuky stanoví asistent.

Základní literatura

BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5. 
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

BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
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

  • Program IT-BC-3 bakalářský

    obor BIT , 1 ročník, zimní semestr, povinný

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Úvodní informace k organizaci výuky. Struktura a cíle předmětu. 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. Řídicí struktury. Bloková struktura programu, rozsah platnosti identifikátorů.
  6. Funkce, parametry funkcí.
  7. Ladění programů.
  8. Textové soubory, standardní vstup/výstup.
  9. Strukturované datové typy.
  10. Rekurze v programování.
  11. Typ ukazatel a dynamické proměnné. Spojové struktury.
  12. Pokročilé ladění programů, verifikace a validace, dokumentace zdrojového kódu.
  13. Modulární stavba programu.

Cvičení odborného základu

12 hod., povinná

Vyučující / Lektor

Osnova

Demonstrační cvičení:
  1. Základní nástroje pro vývoj programů
  2. Překlad a spouštění programů
  3. Jednoduché programy v jazyce C
  4. Datové typy, přetypování
  5. Řídicí struktury
  6. Funkce, práce s řetězci
  7. Základní metody ladění, ladicí nástroje
  8. Vstup/výstup programů
  9. Rekurze
  10. Práce s pamětí
  11. Dokumentace zdrojového kódu, základy testování
  12. Modulární programování, základy zásuvných modulů

Cvičení na počítači

20 hod., nepovinná

Vyučující / Lektor

Osnova

  1. Seznámení s provozním řádem CVT FIT , důležité informace a pokyny, informace ke studiu, rozdělení a přihlášení se do laboratoří, (Zapsané předměty --> IZP --> Termín 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.
  2. Další cvičení korespondují s náplní jednotlivých přednášek a prakticky procvičují prezentovanou látku.

Projekt

7 hod., nepovinná

Vyučující / Lektor