FI:PB071 Principy nízkoúr. prog. - Informace o předmětu
PB071 Principy nízkoúrovňového programování
Fakulta informatikyjaro 2021
- 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í)
Ing. Patrícia Andicsová (cvičící)
Mgr. Luděk Bártek, Ph.D. (cvičící)
Bc. Martin Bendel (cvičící)
Bc. Adéla Bierská (cvičící)
Bc. Stanislav Boboň (cvičící)
Mgr. Ondřej Borýsek (cvičící)
Mgr. Ján Dovjak (cvičící)
Bc. Matej Focko (cvičící)
Mgr. Sandra Galovičová (cvičící)
Mgr. Samuel Gorta (cvičící)
Mgr. Ľuboslav Halama (cvičící)
Bc. Kristína Hanicová (cvičící)
Mgr. Jakub Hanko (cvičící)
Mgr. Adam Ivora (cvičící)
Mgr. Vojtěch Jelínek (cvičící)
Mgr. Petr Kadlec (cvičící)
Mgr. Tomáš Kancko (cvičící)
Bc. Tomáš Krchňák (cvičící)
Mgr. Ivana Krumlová (cvičící)
Bc. Juraj Marcin (cvičící)
Daniel Meščaněnko (cvičící)
Mgr. Jozef Mikušinec (cvičící)
Mgr. Imrich Nagy (cvičící)
Mgr. Peter Navrátil (cvičící)
Mgr. Patrick Ondika (cvičící)
Mgr. Ondřej Pavlica (cvičící)
Bc. Matěj Pavlík (cvičící)
Mgr. Adam Považanec (cvičící)
Mgr. Martin Pulec (cvičící)
Mgr. Jonáš Rosecký (cvičící)
RNDr. Lukáš Ručka (cvičící)
Mgr. Radoslav Sabol (cvičící)
Mgr. Bc. Roman Solař (cvičící)
Mgr. Peter Stanko (cvičící)
Mgr. Oliver Svetlík (cvičící)
Bc. Ondřej Šebek (cvičící)
Vojtěch Škaroupka (cvičící)
Mgr. Adam Štěpánek (cvičící)
Bc. Dávid Šutor (cvičící)
Mgr. Ing. Bc. Přemysl Till (cvičící)
Mgr. Denis Varga (cvičící)
Bc. Tomáš Vondrák (cvičící)
Mgr. Bruno Čičmanec (pomocník)
Bc. Tamara Čierniková (pomocník)
RNDr. Tomáš Effenberger, Ph.D. (pomocník)
Bc. Veronika Hanulíková (pomocník)
Bc. Lubomír Hrbáček (pomocník)
Miroslav Jaroš (pomocník)
Mgr. Martin Piatka (pomocník)
RNDr. Martin Ukrop, Ph.D. (pomocník)
Mgr. Jiří Weiser (pomocník) - 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 12:00–13:50 Virtuální místnost
- Rozvrh seminárních/paralelních skupin:
PB071/02: Pá 12:00–13:50 Virtuální místnost, L. Bártek
PB071/03: Po 16:00–17:50 Virtuální místnost, A. Bierská, S. Gorta
PB071/04: Po 14:00–15:50 Virtuální místnost, S. Gorta, D. Meščaněnko
PB071/05: Út 10:00–11:50 Virtuální místnost, I. Krumlová, P. Ondika
PB071/06: Pá 10:00–11:50 Virtuální místnost, I. Krumlová, T. Vondrák
PB071/07: Po 18:00–19:50 Virtuální místnost, K. Hanicová, R. Lacko, D. Šutor
PB071/08: St 16:00–17:50 Virtuální místnost, T. Krchňák, R. Lacko, J. Marcin
PB071/09: Út 12:00–13:50 Virtuální místnost, P. Andicsová, S. Boboň, I. Nagy
PB071/10: Út 10:00–11:50 Virtuální místnost, Ľ. Halama, I. Nagy
PB071/11: Čt 18:00–19:50 Virtuální místnost, S. Galovičová, P. Navrátil
PB071/12: Út 16:00–17:50 Virtuální místnost
PB071/13: St 14:00–15:50 Virtuální místnost, M. Pavlík, P. Till
PB071/14: Út 10:00–11:50 Virtuální místnost, M. Focko, L. Ručka
PB071/15: Po 14:00–15:50 Virtuální místnost, L. Ručka, V. Škaroupka
PB071/16: Út 12:00–13:50 Virtuální místnost, J. Rosecký, R. Sabol
PB071/17: St 18:00–19:50 Virtuální místnost, R. Sabol, O. Šebek
PB071/18: St 18:00–19:50 Virtuální místnost, R. Solař
PB071/19: Pá 10:00–11:50 Virtuální místnost, R. Solař
PB071/20: Út 18:00–19:50 Virtuální místnost, T. Kancko, P. Stanko
PB071/21: St 10:00–11:50 Virtuální místnost, A. Štěpánek
PB071/22: Po 14:00–15:50 Virtuální místnost, V. Jelínek, D. Varga
PB071/23: Čt 10:00–11:50 Virtuální místnost, M. Bendel
PB071/24: Čt 10:00–11:50 Virtuální místnost, O. Borýsek
PB071/25: St 10:00–11:50 Virtuální místnost, J. Hanko
PB071/26: Čt 10:00–11:50 Virtuální místnost, A. Ivora
PB071/27: Út 16:00–17:50 Virtuální místnost, P. Kadlec
PB071/28: Út 12:00–13:50 Virtuální místnost, J. Dovjak
PB071/29: Čt 14:00–15:50 Virtuální místnost, A. Bierská
PB071/30: Po 16:00–17:50 Virtuální místnost, V. Jelínek
PB071/31: St 16:00–17:50 Virtuální místnost, T. Kancko
PB071/32: Čt 14:00–15:50 Virtuální místnost, D. Meščaněnko
PB071/33: Čt 14:00–15:50 Virtuální místnost, J. Rosecký
PB071/34: St 16:00–17:50 Virtuální místnost, O. Svetlík
PB071/35: Út 14:00–15:50 Virtuální místnost
PB071/36: St 8:00–9:50 Virtuální místnost
PB071/37: Po 18:00–19:50 Virtuální místnost, M. Jaroš - 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
- Analýza a zpracování obrazu (program FI, N-VIZ)
- Aplikovaná informatika (program FI, B-AP)
- Bioinformatika a systémová biologie (program FI, N-UIZD)
- Bioinformatika (program FI, B-AP)
- Computer Games Development (program FI, N-VIZ_A)
- Computer Graphics and Visualisation (program FI, N-VIZ_A)
- Computer Networks and Communications (program FI, N-PSKB_A)
- Cybersecurity Management (program FI, N-RSSS_A)
- Ekonomické informační systémy (program ESF, B-SI)
- Formální analýza počítačových systémů (program FI, N-TEI)
- Grafický design (program FI, N-VIZ)
- Graphic Design (program FI, N-VIZ_A)
- Hardware Systems (program FI, N-PSKB_A)
- Hardwarové systémy (program FI, N-PSKB)
- Image Processing and Analysis (program FI, N-VIZ_A)
- Informační bezpečnost (program FI, N-PSKB)
- Informatika a druhý obor (program FI, B-EB)
- Informatika a druhý obor (program FI, B-FY)
- Informatika a druhý obor (program FI, B-GE)
- Informatika a druhý obor (program FI, B-GK)
- Informatika a druhý obor (program FI, B-CH)
- Informatika a druhý obor (program FI, B-IO)
- Informatika a druhý obor (program FI, B-MA)
- Informatika a druhý obor (program FI, B-TV)
- Informatika (program FI, B-INF) (2)
- Informatika ve veřejné správě (program FI, B-AP)
- Informatika ve vzdělávání (program FI, B-IVV) (2)
- Information Security (program FI, N-PSKB_A)
- Kvantové a jiné neklasické výpočetní modely (program FI, N-TEI)
- Kyberbezpečnost (program FI, B-CS)
- Matematická informatika (program FI, B-IN)
- Paralelní a distribuované systémy (program FI, B-IN)
- Počítačová grafika a vizualizace (program FI, N-VIZ)
- Počítačová grafika a zpracování obrazu (program FI, B-IN)
- Počítačové sítě a komunikace (program FI, B-IN)
- Počítačové sítě a komunikace (program FI, N-PSKB)
- Počítačové systémy a zpracování dat (program FI, B-IN)
- Principy programovacích jazyků (program FI, N-TEI)
- Programování a vývoj aplikací (program FI, B-PVA)
- Programovatelné technické struktury (program FI, B-IN)
- Programovatelné technické struktury (program FI, N-IN)
- Řízení kyberbezpečnosti (program FI, N-RSSS)
- Řízení vývoje služeb (program FI, N-RSSS)
- Řízení vývoje softwarových systémů (program FI, N-RSSS)
- Services Development Management (program FI, N-RSSS_A)
- Služby - výzkum, řízení a inovace (program FI, N-AP)
- Sociální informatika (program FI, B-AP)
- Software Systems Development Management (program FI, N-RSSS_A)
- Software Systems (program FI, N-PSKB_A)
- Softwarové systémy (program FI, N-PSKB)
- Strojové učení a umělá inteligence (program FI, N-UIZD)
- Učitel informatiky a správce sítě (program FI, N-UCI)
- Učitelství informatiky pro střední školy (program FI, N-UCI) (2)
- Umělá inteligence a zpracování přirozeného jazyka (program FI, B-IN)
- Vývoj počítačových her (program FI, N-VIZ)
- Zpracování a analýza rozsáhlých dat (program FI, N-UIZD)
- Zpracování přirozeného jazyka (program FI, N-UIZD)
- 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;
- 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/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 2021, nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2021/PB071