Název:

Základy programování

Zkratka:IZP
Ak.rok:2018/2019
Semestr:zimní
Studijní plán:
ProgramOborRočníkPovinnost
IT-BC-3BIT1.povinný
Vyučovací jazyk:čeština
Aktuální informace:
  • 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).
  • Do počítačových laboratoří je nutné se přezouvat do přezůvek (nejlépe do vlastních). Přineste si s sebou průkaz studenta a login/heslo, které jste obdrželi.
Informace veřejné:http://www.fit.vutbr.cz/study/courses/IZP/public/
Kredity:7 kreditů
Ukončení:zápočet+zkouška (písemná)
Výuka:
hod./sempřednáškasem./cvič.lab. cvič.poč. cvič.jiná
Rozsah:39120207
 zkouškatestycvičenílaboratořeostatní
Body:54128026
Garant:Kreslíková Jitka, doc. RNDr., CSc. (UIFS)
Zástupce garanta:Smrčka Aleš, Ing., Ph.D. (UITS)
Přednášející:Kreslíková Jitka, doc. RNDr., CSc. (UIFS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Cvičící:Češka Milan, RNDr., Ph.D. (UITS)
Havlena Vojtěch, Ing. (UITS)
Hruška Martin, Ing. (UITS)
Husa Jakub, Ing. (UPSY)
Iša Radek, Ing. (UPSY)
Malík Viktor, Ing. (UITS)
Matyáš Jiří, Ing. (UITS)
Očenášek Pavel, Mgr. Ing., Ph.D. (UIFS)
Pánek Richard, Ing. (UPSY)
Regéciová Dominika, Ing. (UIFS)
Rozman Jaroslav, Ing., Ph.D. (UITS)
Smrčka Aleš, Ing., Ph.D. (UITS)
Trchalík Roman, Mgr., Ph.D. (UIFS)
Veigend Petr, Ing. (UITS)
Wrona Jan, Ing. (UPSY)
Zobal Lukáš, 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í:
Algoritmy (IAL), UIFS
Nahrazuje:
Algoritmy a programování (APR), UIFS
Rozvrh:
DenVýukaTýdenMístnostOdDoPSKSk-odSk-do
Popoč. lab - Asistent IšavýukyN10407:0008:501BIA2020
Popoč. lab - Asistent MalíkvýukyN10507:0008:501BIA2121
PopřednáškavýukyD10509:0010:501BIA
PopřednáškavýukyD020709:0010:501BIA
PopřednáškavýukyD10509:0010:502BIAxxxx
PopřednáškavýukyD10509:0010:502BIBxxxx
Popoč. lab - Asistent RozmanvýukyN10314:0015:501BIB3333
Popoč. lab - Asistent OčenášekvýukyN10414:0015:501BIB3434
Popoč. lab - Asistent ČeškavýukyN10514:0015:501BIB3535
PoSchůzka asistentů IZP2018-11-19C23615:0015:50
Popoč. lab - Asistent HusavýukyN10316:0017:501BIB3636
Popoč. labvýukyN10416:0017:501BIBxxxx
Popoč. lab - Asistent TrchalíkvýukyN10516:0017:501BIB3838
PopřednáškavýukyE11217:0017:501BIA
PopřednáškavýukyE10417:0017:501BIA
PopřednáškavýukyE10517:0017:501BIA
PopřednáškavýukyE11217:0017:502BIAxxxx
PopřednáškavýukyE11217:0017:502BIBxxxx
Popoč. lab - Asistent HusavýukyN10318:0019:501BIA1010
Popoč. lab - Asistent WronavýukyN10418:0019:501BIA1111
Popoč. lab - Asistent RegéciovávýukyN10518:0019:501BIA1212
Útpoč. lab - Asistent MatyášvýukyN10308:0009:501BIB3939
Útpoč. lab - Asistent HavlenavýukyN10408:0009:501BIB4040
Útpoč. lab - Asistent MalíkvýukyN10508:0009:501BIB4141
ÚtcvičenívýukyE11210:0010:501BIA1024
ÚtcvičenívýukyE10410:0010:501BIA1024
ÚtcvičenívýukyE10510:0010:501BIA1024
ÚtcvičenívýukyE11210:0010:502BIAxxxx
ÚtcvičenívýukyE11210:0010:502BIBxxxx
Útzkouška - řádná2019-01-08D10511:0013:501BIA
Útzkouška - řádná2019-01-08D10511:0013:501BIB
Útzkouška - řádná2019-01-08D10511:0013:502BIA
Útzkouška - řádná2019-01-08D10511:0013:502BIB
Útzkouška - řádná2019-01-08D020611:0013:501BIA
Útzkouška - řádná2019-01-08D020611:0013:501BIB
Útzkouška - řádná2019-01-08D020711:0013:501BIA
Útzkouška - řádná2019-01-08D020711:0013:501BIB
Útzkouška - řádná2019-01-08E11211:0013:501BIA
Útzkouška - řádná2019-01-08E11211:0013:501BIB
Útzkouška - řádná2019-01-08E10411:0013:501BIA
Útzkouška - řádná2019-01-08E10511:0013:501BIB
Útzkouška - řádná2019-01-08A11211:0013:501BIA
Útzkouška - řádná2019-01-08A11311:0013:501BIB
Útzkouška - řádná2019-01-08G20211:0013:501BIA
Útzkouška - řádná2019-01-08G20211:0013:501BIB
Útpoč. lab - Asistent VeigendvýukyN10314:0015:501BIB3030
Útpoč. lab - Asistent RozmanvýukyN10414:0015:501BIB3131
Útpoč. lab - Asistent PánekvýukyN10514:0015:501BIB3232
Útpoč. lab - Asistent VeigendvýukyN10316:0017:501BIA1313
Útpoč. lab - Asistent ZobalvýukyN10416:0017:501BIA1414
Útpoč. lab - Asistent PánekvýukyN10516:0017:501BIA1515
Útpoč. lab - Asistent IšavýukyN10318:0019:501BIA1616
Útpoč. lab - Asistent ZobalvýukyN10418:0019:501BIA1717
Útpoč. lab - Asistent PánekvýukyN10518:0019:501BIA1818
Stpoč. lab - Asistent HruškavýukyN10308:0009:501BIA1919
Stpoč. labvýukyN10408:0009:50
Stpoč. labvýukyN10508:0009:50
StpřednáškavýukyD10510:0011:501BIB
StpřednáškavýukyD020710:0011:501BIB
StpřednáškavýukyD10510:0011:502BIAxxxx
StpřednáškavýukyD10510:0011:502BIBxxxx
Stpoč. lab - Asistent MatyášvýukyN10310:0011:501BIA2222
Stpoč. lab - Asistent RozmanvýukyN10410:0011:501BIA2323
Stpoč. lab - Asistent ČeškavýukyN10510:0011:501BIA2424
Stpoč. labvýukyN10312:0015:50
Stpoč. labvýukyN10412:0015:50
Stpoč. labvýukyN10512:0015:50
Stzkouška - 1. oprava2019-01-23E11212:0014:501BIA
Stzkouška - 1. oprava2019-01-23E11212:0014:501BIB
Stzkouška - 1. oprava2019-01-23E10412:0014:501BIA
Stzkouška - 1. oprava2019-01-23E10512:0014:501BIB
Stzkouška - 1. oprava2019-01-23E11212:0014:502BIA
Stzkouška - 1. oprava2019-01-23E11212:0014:502BIB
Stpoč. lab - Asistent HavlenavýukyN10316:0017:501BIB4242
Stpoč. lab - Asistent HusavýukyN10416:0017:501BIB4343
Stpoč. lab - Asistent HruškavýukyN10516:0017:501BIB4444
Stpoč. lab - Asistent Regéciová, (tpl 25)výukyN10318:0019:502BIAxxxx
Stpoč. labvýukyN10418:0019:502BIBxxxx
Stpoč. labvýukyN10518:0019:50
Čtpoč. labvýukyN10308:0017:50
Čtpoč. labvýukyN10408:0009:50
Čtpoč. labvýukyN10508:0009:50
ČtpřednáškavýukyD10509:0009:501BIB
ČtpřednáškavýukyD020609:0009:501BIB
ČtpřednáškavýukyD10509:0009:502BIAxxxx
ČtpřednáškavýukyD10509:0009:502BIBxxxx
ČtcvičenívýukyD10510:0010:501BIB3044
ČtcvičenívýukyD020610:0010:501BIB3044
ČtcvičenívýukyD10510:0010:502BIAxxxx
ČtcvičenívýukyD10510:0010:502BIBxxxx
Čtzkouška - 2. oprava2019-01-31E11211:0013:501BIA
Čtzkouška - 2. oprava2019-01-31E11211:0013:501BIB
Čtzkouška - 2. oprava2019-01-31E11211:0013:502BIA
Čtzkouška - 2. oprava2019-01-31E11211:0013:502BIB
Čtpoč. labvýukyN10512:0019:50
ČtIZP - písemky, hodnocení2018-11-22C22812:0013:50
Čtpoč. labvýukyN10414:0017:50
ČtPředstavení distribuce Fedora2018-10-25D10517:0017:501BIA
ČtPředstavení distribuce Fedora2018-10-25D020617:0017:501BIB
Čtpoč. lab - Rezerva, (tpl 46)výukyN10418:0019:502BIAxxxx
Čtpoč. lab - Asistent Wrona (tpl 45)výukyN10318:0019:502BIBxxxx
poč. labvýukyN10308:0018:50
poč. labvýukyN10408:0018:50
poč. labvýukyN10508:0018:50
zkouška - Půlsemestrální test2018-11-16D10516:0017:501BIA
zkouška - Půlsemestrální test2018-11-16E11216:0017:501BIB
zkouška - Půlsemestrální test2018-11-16D020616:0017:502BIA
zkouška - Půlsemestrální test2018-11-16D020716:0017:502BIB
zkouška - Půlsemestrální test2018-11-16E10416:0017:501BIA
zkouška - Půlsemestrální test2018-11-16E10516:0017:501BIB
 
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.
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 matematiky a 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. 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.
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ů.
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.
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.
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.
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.
  • Formu nahrazování zameškané výuky stanoví asistent.
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.
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í.
 

Vaše IPv4 adresa: 54.196.161.252
Přepnout na IPv6 spojení

DNSSEC [dnssec]