| Název: | Základy programování |
|---|
| Zkratka: | IZP |
|---|
| Ak.rok: | 2011/2012 |
|---|
| Semestr: | zimní |
|---|
| Studijní plán: | |
|---|
| Vyučovací jazyk: | čeština, angličtina |
|---|
| Informace veřejné: | http://www.fit.vutbr.cz/study/courses/IZP/public/ |
|---|
| Informace pro zapsané: | http://www.fit.vutbr.cz/study/courses/IZP/private/ |
|---|
| Kredity: | 7 kreditů |
|---|
| Ukončení: | zápočet+zkouška (písemná) |
|---|
| Výuka: | | hod./sem | přednáška | sem./cvičení | lab. cvičení | poč. cvičení | jiná |
|---|
| Rozsah: | 39 | 12 | 0 | 10 | 4 |
|---|
| | zkouška | testy | cvičení | laboratoře | ostatní |
|---|
| Body: | 55 | 12 | 0 | 0 | 33 |
|---|
|
|---|
| Garant: | Kreslíková Jitka, doc. RNDr., CSc., UIFS |
|---|
| Přednášející: | Kreslíková Jitka, doc. RNDr., CSc., UIFS Smrčka Aleš, Ing., Ph.D., UITS |
| Cvičící: | Bendl Jaroslav, Ing., UIFS Horáček Petr, Ing., UIFS Charvát Lukáš, Ing., UITS Martinek David, Ing., UITS Pešek Martin, Ing., UIFS Petřík Patrik, Ing., UIFS Richter Jan, Ing., UIFS Rozman Jaroslav, Ing., Ph.D., UITS Smrčka Aleš, Ing., Ph.D., UITS Sopuch Zbyněk, Ing., UIFS Volf Tomáš, Ing., UIFS Židek Stanislav, Ing., UIFS |
|---|
| Fakulta: | Fakulta informačních technologií VUT v Brně |
|---|
| Pracoviště: | Ústav informačních systémů FIT VUT v Brně |
|---|
| Navazující: | |
|---|
| Nahrazuje: | |
|---|
| | | 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. | | Anotace: |
|---|
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). | | 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. | | 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. | | Osnova přednášek: |
|---|
- 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.
| | Osnova laboratorních cvičení: |
|---|
1. týden v semestru je seznámení s provozním řádem, 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, IUS (každý student napíše zkušební dotaz a odpověď na dotaz v těchto diskusích), vývojové prostředí jazyka C. 2.- 5. týden v semestru je volné využití laboratoří pro samostatné řešení domácích úloh v jazyce C. 6. - 13. týden v semestru jsou konzultace k projektům a k ladění programů. Obhajoba a odevzdání 4 projektů. | | Osnova počítačových cvičení: |
|---|
Demonstrační cvičení:
- 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.
- Iterační výpočty, analýza, návrh ke 2. projektu, ukázka dokumentace.
- Práce s poli, s maticemi, se soubory.
- Standardní knihovny. Jednoduché programy v jazyku C.
- Tvorba modulů, ADT seznam, práce s dynamicky alokovanými datovými strukturami.
| | Osnova ostatní - projekty, práce: |
|---|
- Vstupy, výstupy, parametry a chybové stavy programu.
- Iterační výpočty.
- Výpočty s maticemi.
- Řazení dle české abecedy.
| | Literatura referenční: |
|---|
- Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2008, ISBN 978-80-7232-351-7.
- The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
- 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.
- Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
- Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
- Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
| | Literatura studijní: |
|---|
- McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670
- Kernighan, B. W.: The Practice of Programming, Addison-Wesley, 2003, ISBN 020161586X
- Soubor materiálů prezentovaných na přednáškách bude dostupný na WWW
| | Kontrolovaná výuka: |
|---|
- Vypracování a odevzdání 4 projektů.
- Obhajoba projektů v průběhu laboratorních cvičení.
- Odevzdaná a kontrolovaná dokumentace k jednomu projektu.
- Půlsemestrální test.
- Závěrečná písemná zkouška.
| | Průběžná kontrola studia: |
|---|
Hodnocené domácí úkoly (projekty) s obhajobou: 33 bodů. Půlsemestrální test: 12 bodů. Závěrečná písemná zkouška: 55 bodů. | | 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 odevzdat všechny projekty, z každého projektu musí student získat minimálně 1 bod a získat celkově nejméně 20 bodů z projektů 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í. | | |
|