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

Detail předmětu

Základy programování

IZP Ak. rok 2019/2020 zimní semestr 7 kreditů

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

Garant předmětu

Zástupce garanta předmětu

Jazyk výuky

česky

Zakončení

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

Rozsah

39 hod. přednášky, 12 hod. cvičení, 20 hod. pc laboratoře, 7 hod. projekty

Bodové hodnocení

54 zkouška, 12 půlsemestrální test, 8 cvičení, 26 projekty

Zajišťuje ústav

Přednášející

Cvičící

Beníčková Zuzana, Ing. (UIFS FIT VUT)
Češka Milan, RNDr., Ph.D. (UITS FIT VUT)
Husa Jakub, Ing. (UPSY FIT VUT)
Hynek Jiří, Ing. (UIFS FIT VUT)
Iša Radek, Ing. (UPSY FIT VUT)
Klobučníková Dominika, Ing. (UIFS FIT VUT)
Malík Viktor, Ing. (UITS FIT VUT)
Očenášek Pavel, Mgr. Ing., Ph.D. (UIFS FIT VUT)
Pánek Richard, Ing. (UPSY FIT VUT)
Rozman Jaroslav, Ing., Ph.D. (UITS FIT VUT)
Rydlo Štěpán, Ing. (UITS FIT VUT)
Sakin Martin, Ing. (UITS FIT VUT)
Smrčka Aleš, Ing., Ph.D. (UITS FIT VUT)
Tinka Jan, Ing. (UITS FIT VUT)
Tomko Martin, Ing. (UIFS FIT VUT)
Trchalík Roman, Mgr., Ph.D. (UIFS FIT VUT)
Veigend Petr, Ing. (UITS FIT VUT)
Vondráček Martin, Ing. (UIFS FIT VUT)

Stránky předmětu

Aktuální informace

  • Kdo nebyl ve čtvrtek (19.9.) na školení pro první ročníky, přečte si před vstupem do CVT (Centrum výpočetní techniky) na laboratorní cvičení v IZP Provozní řád a úspěšně splní Test z provozního řádu CVT (předmět IDM). Na prvním cvičení v IZP bude ověřováno, že s ním byli studenti seznámeni. Kdo nebude mít seznámení s Provozním řádem ověřitelné, bude mu časem znemožněn přístup do CVT.
  • 22.9.2019, ve 23:59 hod. končí v IZP přihlašování týmů do Termínu počítačových laboratoří (tpl). Zahájení přihlašování do týmů a posléze do Termínu počítačových laboratoří je: 20.9.2019, 19:30 hod. Každý student se přihlásí do Informačního Systému FIT, zvolí zapsaný předmět IZP a zapíše se do jednoho týmu laboratoří (kde je ještě volné místo), dle vlastního výběru. Pokud se domluví minimálně 3 studenti, musí si zvolit vedoucího týmu, vedoucí týmu může tým založit (až 5 studentů) a tým do zvoleného (libovolného) termínu laboratoří, kde je ještě volné místo, přihlásit. Týmy je možné zakládat od 20.9.2019, 19:00 hod.
  • V prvním týdnu výuky (23. 9. - 27. 9. 2019) se studenti dostaví do počítačových laboratoří podle rozvrhu pro jednotlivé skupiny (tpl xx_...), v termínech ve kterých je jejich tým přihlášen. Božetěchova 1, nová prosklená budova, 1. patro, (2. podlaží), chodba L201 - před vchodem do CVT - Recepce Centrum výpočetní techniky. Asistent si studenty před CVT, na začátku cvičení vyzvedne.
  • Studenti z FEKTu, kteří si IZP zapsali jako volitelný předmět BPC-IZP si mohou zvolit termín přednášky (přednášková skupina A/B). Do Termínu počítačových laboratoří se zapisují stejně jako studenti FIT, jak je uvedeno výše.
  • Studenti z ostatních fakult VUT, kteří si IZP zapsali jako Svobodný předmět, si mohou zvolit termín přednášky (přednášková skupina A/B). Do Termínu počítačových laboratoří se zapisují stejně jako studenti FIT, jak je uvedeno výše. Stejně tak studenti CŽV.
  • Do počítačových laboratoří je nutné se přezouvat do vlastních přezůvek. Přineste si s sebou průkaz studenta a login/heslo, které jste obdrželi.
  • Během prvních třech týdnů výuky (do 11. 10.) mohou studenti, kteří předmět IZP opakují a získali minimálně celkem 20 bodů za projekty, požádat garanta předmětu (Kreslíková) o uznání bodů za projekty (1. - 3. a dokumentace zdrojového kódu) z předchozího studia.
  • Pro komunikaci v rámci předmětu IZP používejte výhradně školní mail. Předmět zprávy předznačujte zkratkou předmětu (např.: IZP - uznání bodů z předchozího studia).

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. Naučí se používat prostředky pro ladění programů. Naučí se dokumentovat, obhajovat a prezentovat dosažené výsledky.

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

Proč je předmět vyučován

Po absolvování základů programování studenti budou znát základní pojmy, algoritmy a principy vyšších programovacích jazyků. Student bude dobře ovládat programování a ladění v jazyce C. Získané znalosti jsou použitelné v různých oblastech vývoje softwarových produktů.

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

Literatura studijní

  • McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670.
  • Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.
  • Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
  • Soubor materiálů prezentovaných na přednáškách bude dostupný na WWW.

Literatura referenční

  • Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
  • BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
  • Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
  • 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.
  • 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.

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. Ověření seznámení se s provozním řádem CVT FIT, důležité informace a pokyny, informace ke studiupřihlášení se do týmu laboratoří, (kdo nestihl ve vypsaném termínu: Zapsané předměty --> IZP --> Termín počítačových 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.

Průběžná kontrola studia

  • Hodnocené domácí úkoly (projekty) s obhajobou - 26 bodů.
  • Počítačová cvičení - 8 bodů.
  • Půlsemestrální test - 12 bodů.
  • Závěrečná písemná zkouška - 54 body.

Kontrolovaná výuka

  • 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. Pro získání bodů ze semestrální zkoušky je nutné zkoušku vypracovat takaby byla hodnocena nejméně 25 body. V opačném případě bude zkouška hodnocena 0 body.
  • Formu nahrazování zameškané výuky stanoví asistent.

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

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Poostatní2019-10-07 D0206 D105 08:0008:50 1BIA 1BIB Fedora Linux (zvaná přednáška)
Popoč. labvýuky N103 08:0009:50 1BIB 30 Asistent Malík
Popoč. labvýuky N104 08:0009:50 1BIB 31 Asistent Veigend
Popoč. labvýuky N105 08:0009:50 1BIB 32 Asistent Rydlo
Popřednáškavýuky D0206 D105 09:0010:50 1BIA 2BIA 2BIB xx
Popoč. labvýuky N103 10:0011:50 1BIB 33 Asistent Češka
Popoč. labvýuky N104 10:0011:50 1BIB 34 Asistent Veigend
Popoč. labvýuky N105 10:0011:50 1BIB 35 Asistent Rydlo
Popoč. labvýuky N103 N104 N105 12:0014:50 1BIA 1BIB xx Volné využití
Popřednáškavýuky D0206 D105 13:0014:50 1BIB 2BIA 2BIB xx
Popoč. labvýuky N103 15:0016:50 1BIB 36 Asistent Hynek
Popoč. labvýuky N104 15:0016:50 1BIB 37 Asistent Očenášek
Popoč. labvýuky N105 15:0016:50 1BIB 38 Asistent Trchalík
Popoč. labvýuky N103 17:0018:50 1BIB 39 Asistent Hynek
Popoč. labvýuky N104 17:0018:50 1BIB 40 Asistent Očenášek
Popoč. labvýuky N105 17:0018:50 1BIB 41 Asistent Rozman
Popoč. labvýuky N103 19:0020:50 1BIB xx Volné využití
Útpoč. labvýuky N103 08:0009:50 1BIA 10 Asistent malík
Útpoč. labvýuky N104 08:0009:50 1BIA 11 Asistent Vondráček
Útpoč. labvýuky N103 10:0011:50 1BIA 12 Asistent Pánek
Útpoč. labvýuky N104 10:0011:50 1BIA 13 Asistent Rozman
Útpřednáškavýuky D0206 D105 12:0012:50 1BIA 2BIA 2BIB xx
Útpoč. labvýuky N103 16:0017:50 1BIA 14 Asistent Pánek
Útpoč. labvýuky N104 16:0017:50 1BIA 15 Asistent Klobučníková
Útpoč. labvýuky N103 18:0019:50 1BIA 16 Asistent Pánek
Útpoč. labvýuky N104 18:0019:50 1BIA 17 Asistent Klobučníková
Stpoč. labvýuky N103 N104 08:0009:50 1BIA 1BIB xx Volné využití
Stpoč. labvýuky N105 08:0009:50 1BIA 20 Asistent Tinka
Stpoč. labvýuky N103 10:0011:50 1BIA 18 Asistent Tomko
Stpoč. labvýuky N104 N105 10:0011:50 1BIA 1BIB xx Volné využití
Stcvičenívýuky D0207 D105 11:0011:50 1BIA 2BIA 2BIB xx 10 - 29
Stpoč. labvýuky N103 12:0013:50 1BIB 42 Asistent Češka
Stpoč. labvýuky N104 12:0013:50 1BIB 43 Asistent Rozman
Stpoč. labvýuky N105 12:0013:50 1BIB 44 Asistent Tinka
Stpoč. labvýuky N103 14:0015:50 1BIA 19 Asistent Tomko
Stpoč. labvýuky N104 14:0015:50 1BIA xx Aistent Vondráček (tpl 46)
Stpoč. labvýuky N105 14:0015:50 1BIA 1BIB xx Volné využití
Stpoč. labvýuky N103 16:0017:50 1BIA 21 Asistent Sakin
Stpoč. labvýuky N104 16:0017:50 1BIA 22 Asistent Husa
Stpoč. labvýuky N105 16:0017:50 1BIA 23 Asistent Beníčková
Stpoč. labvýuky N103 18:0019:50 1BIA 24 Asistent Sakin
Stpoč. labvýuky N104 18:0019:50 1BIA 25 Asistent Husa
Stpoč. labvýuky N105 18:0019:50 1BIA 26 Asistent Beníčková
Čtpoč. labvýuky N103 08:0009:50 1BIA 27 Asistent Iša
Čtpoč. labvýuky N104 08:0009:50 1BIA xx Volné využití
Čtpřednáškavýuky E104 E105 E112 09:0009:50 1BIB 2BIA 2BIB xx
Čtcvičenívýuky E104 E105 E112 10:0010:50 1BIB 2BIA 2BIB xx 30 - 44
Čtpoč. labvýuky N103 10:0011:50 1BIA 28 Asistent Iša
Čtpoč. labvýuky N104 10:0011:50 1BIA 29 Asistent Sakin
Čtpoč. labvýuky N103 18:0019:50 2BIA 2BIB xx Asistent Husa (tpl 45)
Čtpoč. labvýuky N104 N105 18:0019:50 1BIB xx Volné využití
ostatní2019-09-20 C228 13:0015:50Schůzka asistentů IZP
ostatní2019-11-15 C228 16:0017:50Schůzka asistentů IZP
zkouška2019-11-15 A112 A113 D0206 D0207 D105 E104 E105 E112 G202 17:0018:50 1BIA 1BIB 2BIA 2BIB Půlsemestrální test

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

  • Program BIT, 1. ročník, povinný
  • Program IT-BC-3, obor BIT, 1. ročník, povinný
Nahoru