PB160 Programování v jazyce C

Fakulta informatiky
jaro 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í)
Iva Kasprzaková (cvičící)
RNDr. Lukáš Ručka (cvičící)
Mgr. Radoslav Sabol (cvičící)
Bc. David Štorek (cvičící)
Mgr. Dávid Šutor (cvičící)
Pavol Trnavský (cvičící)
Peter Vajda (cvičí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.: 87/85, pouze zareg. s předností (mateřské obory): 79/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
Studijní materiály
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