FI:PB160 Programování v jazyce C - Informace o předmětu
PB160 Programování v jazyce C
Fakulta informatikyjaro 2026
- Rozsah
- 2/2/0. 3 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: z.
Vyučováno kontaktně - Vyučující
- doc. RNDr. Petr Švenda, Ph.D. (přednášející)
- 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 - Předpoklady
- PB006 Principy progr. jazyků a OOP
U studentů se tohoto kurzu se předpokládá základní znalost algoritmizace v programovacím jazyce Python, případně jiném a základní porozumnění nízkoúrovňovým konceptům na úrovni předmětu PB111. 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.
Předmět si smí zapsat nejvýše 85 stud.
Momentální stav registrace a zápisu: zapsáno: 0/85, pouze zareg.: 86/85, pouze zareg. s předností (mateřské obory): 78/85 - Mateřské obory/plány
- předmět má 7 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 včetně nejnovější C23.
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, gitflow...);
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;
Vhodně používat podpůrné nástroje založené na velkých jazykových modelech (LLM) pro doporučování nového kódu, ladění (debugging), refaktoring (refactoring), porozumnění stávajícímu kódu a recenzi nového zdrojového kódu (code review). - Výstupy z učení
- Student bude po absolvování předmětu schopen:
- psát programy v jazyce C s využitím moderních postupů a prvků jazyka;
- používat základní vývojové nástroje včetně IDE, debuggeru, verzovacího systému, dynamické analýzy použití paměti a profilování;
- 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ů;
- pochopit a rozšiřovat existující zdrojový kód;
- vhodně použít nástroje založené na velkých jazykových modelech (LLM); - 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.
- Moderní jazykové konstrukty standardů C11/17/23.
- Vývoj a ladění programů s paralelním vykonáváním s využitím C23.
- Návaznost na OS Unix/Linux a Windows. Základy POSIX C knihovny. Implementace na různých OS.
- Bezpečné a defensivní programování.
- Automatické i manuální testování.
- Využití nástrojů na bázi LLM v rámci vývojového procesu.
- 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 minimálního definovaného počtu 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
- Předmět je určen pro studenty, kteří chtějí získat základní znalosti jazyka C včetně jeho nejnovějších revizí, principů nízkoúrovňového programování a využití moderních vývojářských nástrojů.
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
- Předmět je vyučován každoročně.
Výuka probíhá každý týden. - Nachází se v prerekvizitách jiných předmětů
- Statistika zápisu (nejnovější)
- Permalink: https://is.muni.cz/predmet/fi/jaro2026/PB160