FI:PB071 Principy nízkoúr. prog. - Informace o předmětu
PB071 Principy nízkoúrovňového programování
Fakulta informatikyjaro 2019
- Rozsah
- 2/2. 4 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: z.
- Vyučující
- doc. RNDr. Petr Švenda, Ph.D. (přednášející)
Mgr. Luděk Bártek, Ph.D. (cvičící)
Miroslav Jaroš (cvičící)
Mgr. Roman Lacko (cvičící)
RNDr. Petr Ročkai, Ph.D. (cvičící)
RNDr. Lukáš Ručka (cvičící)
Mgr. Peter Stanko (cvičící)
Mgr. Jan Tušil (pomocník)
Mgr. Jiří Weiser (cvičící)
RNDr. Michal Zima (cvičící)
RNDr. Aleš Zlámal (cvičící)
Bc. Martin Bendel (cvičící)
Mgr. Ondřej Borýsek (cvičící)
Mgr. Tomáš Buriánek (cvičící)
Bc. Miroslav Cambel (cvičící)
Mgr. Ján Dovjak (cvičící)
Dominik Dubravický (cvičící)
RNDr. Antonín Dufka (cvičící)
Mgr. Matúš Dugáček (cvičící)
Matej Dujava (cvičící)
Bc. Zoltán Fridrich (cvičící)
Mgr. Sandra Galovičová (cvičící)
Mgr. Samuel Gorta (cvičící)
Mgr. Jakub Hanko (cvičící)
Mgr. Adrián Hrinko (cvičící)
Mgr. Ondřej Charbulák (cvičící)
Mgr. Roman Chrenšť (cvičící)
Mgr. Adam Ivora (cvičící)
Mgr. Vojtěch Jelínek (cvičící)
Bc. Dominik Jochec (cvičící)
Mgr. Tomáš Kancko (cvičící)
Mgr. Lukáš Korenčik (cvičící)
Mgr. Jakub Bartolomej Košuth (cvičící)
Mgr. Matúš Kropuch (cvičící)
Mgr. Ivana Krumlová (cvičící)
Bc. Lukáš Kurčík (cvičící)
Daniel Meščaněnko (cvičící)
Mgr. Jozef Mikušinec (cvičící)
Bc. Ivan Mitruk (cvičící)
Ing. Erik Moravec (cvičící)
Mgr. Imrich Nagy (cvičící)
Mgr. Peter Navrátil (cvičící)
Mgr. Jiří Novosad (cvičící)
Mgr. Samuel Obuch (cvičící)
Mgr. Ondřej Pavlica (cvičící)
Bc. Matěj Pavlík (cvičící)
Mgr. Martin Piatka (cvičící)
Mgr. Adam Považanec (cvičící)
Mgr. Martin Pulec (cvičící)
Mgr. Marko Řeháček (cvičící)
Mgr. Anna Řechtáčková (cvičící)
Mgr. Radoslav Sabol (cvičící)
Bc. Norbert Slivka (cvičící)
Mgr. Bc. Roman Solař (cvičící)
Mgr. Stanislav Soták (cvičící)
Bc. Dominik Stuchlík (cvičící)
Bc. Ondřej Šebek (cvičící)
Bc. Pavel Šimovec (cvičící)
Mgr. Adam Štěpánek (cvičící)
Mgr. Ing. Bc. Přemysl Till (cvičící)
Mgr. Denis Varga (cvičící)
Mgr. Lukáš Zaoral (cvičící)
Mgr. Daniel Zaťovič (cvičící)
Mgr. Tomáš Brukner (pomocník)
Mgr. Ondřej Machala (pomocník)
Mgr. Štěpánka Trnková (pomocník)
RNDr. Martin Ukrop, Ph.D. (pomocník) - Garance
- doc. RNDr. Eva Hladká, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky - Rozvrh
- Po 18. 2. až Po 13. 5. Po 12:00–13:50 D1, Po 12:00–13:50 D3
- Rozvrh seminárních/paralelních skupin:
PB071/02: Čt 21. 2. až Čt 16. 5. Čt 10:00–11:50 A219, L. Bártek, V. Jelínek
PB071/03: Čt 21. 2. až Čt 16. 5. Čt 10:00–11:50 A215, M. Pulec, S. Soták
PB071/04: St 20. 2. až St 15. 5. St 12:00–13:50 B117, L. Kurčík, I. Mitruk
PB071/05: St 20. 2. až St 15. 5. St 18:00–19:50 A219, M. Dugáček, M. Zima
PB071/06: St 20. 2. až St 15. 5. St 16:00–17:50 A219, D. Stuchlík, M. Zima
PB071/07: Út 19. 2. až Út 14. 5. Út 16:00–17:50 A219, M. Jaroš, R. Sabol
PB071/08: St 20. 2. až St 15. 5. St 18:00–19:50 B130, M. Jaroš, E. Moravec
PB071/09: Pá 12:00–13:50 A219, S. Galovičová, P. Navrátil
PB071/10: St 20. 2. až St 15. 5. St 8:00–9:50 B130, P. Navrátil, O. Pavlica
PB071/11: St 20. 2. až St 15. 5. St 10:00–11:50 A219, M. Cambel, O. Šebek
PB071/12: St 20. 2. až St 15. 5. St 8:00–9:50 A219, A. Dufka, I. Nagy
PB071/13: Po 18. 2. až Po 13. 5. Po 18:00–19:50 A215, Z. Fridrich, P. Šimovec
PB071/14: Čt 21. 2. až Čt 16. 5. Čt 12:00–13:50 B117, M. Bendel, D. Varga
PB071/15: Po 18. 2. až Po 13. 5. Po 16:00–17:50 A219, L. Ručka, M. Řeháček
PB071/16: St 20. 2. až St 15. 5. St 14:00–15:50 A219, M. Řeháček, L. Zaoral
PB071/17: Po 18. 2. až Po 13. 5. Po 14:00–15:50 A219, J. Dovjak, M. Pulec
PB071/18: Po 18. 2. až Po 13. 5. Po 18:00–19:50 A219, M. Dujava, L. Korenčik
PB071/19: Čt 21. 2. až Čt 16. 5. Čt 8:00–9:50 A219, A. Ivora, D. Jochec
PB071/20: Út 19. 2. až Út 14. 5. Út 18:00–19:50 A219, O. Borýsek, D. Jochec
PB071/21: Út 19. 2. až Út 14. 5. Út 10:00–11:50 A219, M. Pavlík, R. Solař
PB071/22: Čt 21. 2. až Čt 16. 5. Čt 10:00–11:50 B311, R. Solař, P. Till
PB071/23: Po 18. 2. až Po 13. 5. Po 16:00–17:50 B117, J. Hanko, S. Obuch
PB071/24: Čt 21. 2. až Čt 16. 5. Čt 12:00–13:50 B116, T. Kancko, S. Obuch
PB071/25: Po 18. 2. až Po 13. 5. Po 16:00–17:50 B116, S. Gorta, R. Lacko
PB071/26: Út 19. 2. až Út 14. 5. Út 12:00–13:50 A219, D. Dubravický, M. Kropuch, R. Lacko
PB071/27: Út 19. 2. až Út 14. 5. Út 14:00–15:50 B130, I. Krumlová, M. Piatka
PB071/28: Čt 21. 2. až Čt 16. 5. Čt 18:00–19:50 A219, A. Hrinko, D. Varga
PB071/29: Pá 10:00–11:50 A215
PB071/30: Čt 21. 2. až Čt 16. 5. Čt 8:00–9:50 A215, A. Dufka, A. Považanec
PB071/31: St 20. 2. až St 15. 5. St 16:00–17:50 A215, R. Chrenšť, J. Weiser
PB071/32: Út 19. 2. až Út 14. 5. Út 16:00–17:50 B117, J. Košuth, J. Weiser
PB071/33: Pá 10:00–11:50 A219, O. Charbulák, J. Novosad
PB071/34: Pá 8:00–9:50 A219, P. Stanko, A. Štěpánek
PB071/35: Čt 21. 2. až Čt 16. 5. Čt 16:00–17:50 A219, J. Mikušinec
PB071/36: Út 19. 2. až Út 14. 5. Út 16:00–17:50 B130, A. Řechtáčková, P. Stanko
PB071/37: Út 19. 2. až Út 14. 5. Út 14:00–15:50 A215, A. Zlámal
PB071/38: Po 18. 2. až Po 13. 5. Po 14:00–15:50 A215, D. Zaťovič, A. Zlámal
PB071/39: Út 19. 2. až Út 14. 5. Út 12:00–13:50 B130, T. Buriánek, P. Ročkai
PB071/40: Pá 12:00–13:50 B130, D. Meščaněnko, P. Ročkai - Předpoklady
- IB001 Úvod do prog. skrze C || IB111 Základy programování || IB999 Vstupní test z programování
U studentů se předpokládá znalost algoritmizace v Pascalu, případně jiném programovacím jazyce. Současně se předpokládá znalost operačního systému Unix na uživatelské úrovni, neboť odevzdání domácích příkladů a část cvičení probíhá pod Unixem. - Omezení zápisu do předmětu
- Předmět je nabízen i studentům mimo mateřské obory.
- Mateřské obory/plány
- předmět má 22 mateřských oborů, zobrazit
- Cíle předmětu
- Na konci tohoto kurzu bude student:
Ovládat základní syntaxi jazyka C podle norem ANSI a ISO/IEC.
Schopen dekomponovat zadaný problém a prakticky jej implementovat.
Schopen na základní úrovni používat moderní vývojové nástroje (IDE, debugger, verzovací nástroje...);
Znát základy POSIX C funkcí.
Komentovat kód s možností automatického generování dokumentace.
Ovládat základní dobré programátorské návyky.
Překládat programy pod OS typu Unix i Windows. - Výstupy z učení
- Student bude po absolvování předmětu schopen:
- psát programy v jazyce C;
- používat základní vývojové nástroje včetně IDE, debuggeru, verzovacího systému a dynamické analýzy použití paměti;
- rozumnět způsobu vykonávání kódu na úrovni CPU a paměti;
- používat dynamickou alokaci paměti a její korektní uvolňování;
- psát programy s využitím dobrých programátorských návyků; - Osnova
- Historické návaznosti jazyka C. Jeho vztah k operačnímu systému Unix.
- Překladače jazyka C pod Unixem a MS Windows, vývojové prostředí, debugger, verzovací systémy, dokumentace Doxygen, dobré programátorské návyky, testování.
- Datové typy, konstanty, deklarace, výrazy. Přiřazovací výrazy a příkazy.
- Základní struktura programu. Příkazy preprocesoru. Komentáře. Řídicí struktury. Nejdůležitejší příkazy vstupu a výstupu.
- Pole, ukazatatele, funkce. Volání hodnotou, předání operandu pomocí ukazatele.
- Textové řetězce a manipulace s nimi. Standardní knihovna jazyka C podle norem ANSI a ISO/IEC.
- Deklarace, uživatelské datové typy. Dynamická alokace paměti.
- Vstup a výstup, práce se soubory, práce se širokými znaky.
- Návaznost na OS Unix a Windows. Základy POSIX C knihovny. Implementace na různých OS.
- Ovládání klávesnice a myši.
- Bezpečné a defensivní programování. Pokročilé testování.
- Literatura
- Kernighan, Brian W. - Ritchie, Dennis M. Programovací jazyk C. Brno: Computer Press, 2006. ISBN 80-251-0897-X
- HEROUT, Pavel. Učebnice jazyka C. 3. upr. vyd. České Budějovice: KOPP, 1996, 269 s. ISBN 80-85828-21-9. info
- HEROUT, Pavel. Učebnice jazyka C. České Budějovice: KOPP, 1998, 236 s. ISBN 80-85828-50-2. info
- DRESSLER, Miroslav. Programovací jazyky GNU : volně šiřitelná programátorská prostředí : Fortran, jazyk C, Pascal, GRX, DJGPP, RHIDE, RSX, VESA, EMX, MAKE. 1. vyd. Praha: Computer Press, 1998, xix, 225. ISBN 8072260707. info
- Záložky
- https://is.muni.cz/ln/tag/FI:PB071!
- Výukové metody
- Výuka probíhá formou kombinace teoretických přednáškových lekcí s praktickými cvičeními, doplněnými samostatnými domácími programátorskými úlohami procvičujícími probranou látku z přednášek.
- Metody hodnocení
- Student během celého semestru vypracuje 5 domácích úloh, jeden vnitrosemestrální test a jedno závěrečné praktické programovací cvičení. Pro úspěšné absolvování je požadován zisk alespoň 95 bodů a úspěšné splnění požadavků cvičení (docházka, body, zápočtový příklad).
Ve cvičeních studenti samostatně vytvářejí zadané programy (obvykle s nutností dokončit doma nebo v počítačové učebně). Zpracování příkladů je bodováno podle předem oznámených kritérií. Doporučené ukončení předmětu je zkouška, která probíhá formou testu prováděného na počítači. Podmínkou připuštění k testu je získání zápočtu ze cvičení a samostatné úspěšné zpracování závěrečného příkladu. Klasifikace závisí na bodovém hodnocení práce ve cvičeních, kvalitě zpracovaného závěrečného příkladu a na výsledku testu.
Účast ve cvičeních je povinná. - Navazující předměty
- Informace učitele
- https://www.fi.muni.cz/pb071/
Předmět je určen pro studenty, kteří chtějí získat základní znalosti jazyka C, principů nízkoúrovňového programování a chtějí typicky později studovat předmět PB161 (Programování v jazyce C++).
Další informace jsou během semestru zveřejněny na webovské stránce předmětu.
Přednášejícího můžete kontaktovat osobně v místnosti A406 nebo e-mailem na adrese svenda@fi.muni.cz - Další komentáře
- Studijní materiály
Předmět je vyučován každoročně. - Nachází se v prerekvizitách jiných předmětů
- IB113 Úvod do programování a algoritmizace
!NOW(IB111) && !IB111 && !PB162 && !PB161 && !PB071 && !IB001 && !program(B-INF) && !program(B-PVA) && !program(B-CS) - PB006 Principy programovacích jazyků a OOP
(IB111 || NOW(IB111)) && (PB071 || PB111) - PB152cv Operační systémy - cvičení
(PB153 || PB152) && (PB111 || PB071 || SOUHLAS) - PB173 Tematicky zaměřený vývoj aplikací
PB111 || PB071 || SOUHLAS - PB176 Základy kvality a správy kódu
PB006 || PB071 || now(PB071)
- IB113 Úvod do programování a algoritmizace
- Statistika zápisu (jaro 2019, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2019/PB071