FI:PB071 Principy nízkoúr. prog. - Informace o předmětu
PB071 Principy nízkoúrovňového programování
Fakulta informatikyjaro 2024
- Rozsah
- 2/2/1. 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. Roman Lacko (cvičící)
Mgr. Luděk Bártek, Ph.D. (cvičící)
Kryštof Bednařík (cvičící)
Bc. Adéla Bierská (cvičící)
Nikola Davidová (cvičící)
Bc. Juraj Fiala (cvičící)
Boris Hajduk (cvičící)
Jindřich Halabala (cvičící)
Bc. Kristína Hanicová (cvičící)
Bc. Veronika Hanulíková (cvičící)
Petr Hejčl (cvičící)
Aleš Horna (cvičící)
Bc. Lubomír Hrbáček (cvičící)
Miroslav Jaroš (cvičící)
Bc. Tomáš Jaroš (cvičící)
Mgr. Vojtěch Jelínek (cvičící)
Bc. Tomáš Jusko (cvičící)
Mgr. Petr Kadlec (cvičící)
Ján Kapko (cvičící)
Iva Kasprzaková (cvičící)
Bc. Martin Klimeš (cvičící)
Samuel Malec (cvičící)
Bc. Juraj Marcin (cvičící)
Dominik Melkovič (cvičící)
Bc. Ota Mikušek (cvičící)
Adam Mydla (cvičící)
Mgr. Patrick Ondika (cvičící)
Bc. Adam Parák (cvičící)
Miroslav Patlevič (cvičící)
Michal Rábek (cvičící)
RNDr. Lukáš Ručka (cvičící)
Jozef Sabo (cvičící)
Samuel Sabo (cvičící)
Mgr. Radoslav Sabol (cvičící)
Bc. Jindřich Sedláček (cvičící)
Samuel Stančík (cvičící)
Štěpán Šonovský (cvičící)
David Štorek (cvičící)
Bc. Dávid Šutor (cvičící)
Pavol Trnavský (cvičící)
Martin Tvarožek (cvičící)
Bc. Tomáš Vondrák (cvičící)
Filip Weinberger (cvičící)
Jakub Wolek (cvičící)
Radoslav Baník (pomocník)
Bc. Matej Focko (pomocník)
Mgr. Samuel Gorta (pomocník)
Adam Hadar (pomocník)
Adam Haluška (pomocník)
Bc. Patrik Horák (pomocník)
Jozef Hoschek (pomocník)
Matúš Jakuboc (pomocník)
Martin Marcinech (pomocník)
Bc. Tomáš Menšík (pomocník)
Bc. Ondřej Metelka (pomocník)
Marcel Nadzam (pomocník)
Jan Nouza (pomocník)
Jakub Plhal (pomocník)
Klaudia Pohanková (pomocník)
Peter Rakšány (pomocník)
Mgr. Bc. Roman Solař (pomocník)
Ján Václav (pomocník)
Diana Valková (pomocník)
Tomáš Waldsberger (pomocník)
Veronika Zemanová (pomocník) - Poskytovatelé Specifické podpory výuky
- Mgr. et Mgr. Iva Raclavská, DiS. (zapisovatel)
Mgr. et Mgr. Bc. Pavla Wernerová (zapisovatel) - Garance
- doc. RNDr. Petr Švenda, 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 10:00–11:50 D2, Po 10:00–11:50 D1, Po 10:00–11:50 D3
- Rozvrh seminárních/paralelních skupin:
PB071/02: Po 14:00–15:50 A219, L. Bártek
PB071/03: Čt 18:00–19:50 A219, A. Bierská, P. Trnavský
PB071/04: St 16:00–17:50 A219, L. Ručka, M. Tvarožek
PB071/05: Út 10:00–11:50 A219, N. Davidová, T. Jusko
PB071/06: Út 12:00–13:50 B011, K. Hanicová, P. Hejčl
PB071/07: Po 18:00–19:50 B011, M. Jaroš, S. Sabo
PB071/08: St 18:00–19:50 A219, M. Jaroš, S. Malec
PB071/09: Čt 16:00–17:50 B130, J. Halabala, V. Jelínek
PB071/10: Čt 16:00–17:50 A219, P. Kadlec, A. Parák
PB071/11: St 12:00–13:50 A219, P. Kadlec, J. Wolek
PB071/12: Po 12:00–13:50 A219, I. Kasprzaková, R. Lacko
PB071/13: Po 12:00–13:50 B130, M. Klimeš, J. Marcin
PB071/14: St 14:00–15:50 B011, L. Ručka, J. Sabo
PB071/15: St 8:00–9:50 A219, D. Melkovič, L. Ručka
PB071/16: Út 8:00–9:50 A219, J. Kapko, R. Sabol
PB071/17: Čt 8:00–9:50 B011, R. Sabol, D. Štorek
PB071/18: Út 18:00–19:50 B011, K. Bednařík, D. Šutor
PB071/19: Čt 18:00–19:50 B011, M. Rábek, D. Šutor
PB071/20: Čt 14:00–15:50 B130, T. Vondrák
PB071/21: Po 18:00–19:50 A219, J. Fiala, S. Stančík
PB071/22: Po 12:00–13:50 B011, A. Horna
PB071/23: Po 14:00–15:50 B130, L. Hrbáček
PB071/24: St 12:00–13:50 B011, B. Hajduk, T. Jaroš
PB071/25: Po 14:00–15:50 B011, T. Jusko
PB071/26: Pá 12:00–13:50 B130, O. Mikušek
PB071/27: St 18:00–19:50 B011, A. Mydla, F. Weinberger
PB071/28: Po 16:00–17:50 A219, P. Ondika
PB071/29: Út 10:00–11:50 B130, P. Ondika
PB071/30: St 16:00–17:50 B011, M. Patlevič
PB071/31: Út 8:00–9:50 B130, J. Sedláček
PB071/32: Út 12:00–13:50 B130, Š. Šonovský
PB071/33: Čt 18:00–19:50 B130, R. Lacko, T. Waldsberger - Předpoklady
- U studentů se tohoto kurzu se předpokládá základní znalost algorimizace v programovacím jazyce Python, případně jiném. Současně se předpokládá znalost operačního systému Unix/Linux na uživatelské úrovni, neboť odevzdání domácích příkladů a část cvičení probíhá pod Unixem/Linuxem.
- 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á 60 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/Linux 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;
- rozumě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/Linuxem 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/Linux 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í.
- Automatické i manuání 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í
- Pro zisk zápočtu a možnost absolvovat závěrečnou zkoušku student během celého semestru vypracuje 6 domácích úloh (alespoň čtyři z nich na nenulový počet bodů) a jedno závěrečné praktické programovací cvičení obsahující znalostní test a programovací úlohu. Pro úspěšné absolvování předmětu je požadován zisk alespoň 85 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 2024, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2024/PB071