PB111 Principy nízkoúrovňového programování

Fakulta informatiky
jaro 2025
Rozsah
2/2/1. 4 kr. (plus ukončení). Doporučované ukončení: zk. Jiná možná ukončení: z.
Vyučováno kontaktně
Vyučující
RNDr. Petr Ročkai, Ph.D. (přednášející)
Mgr. Adam Matoušek (cvičící)
Bc. Tomáš Pavlík (cvičící)
Bc. Vladimír Uhlík (cvičící)
Tomáš Waldsberger (cvičící)
Jozef Sabo (cvičící)
Pavol Trnavský (cvičící)
RNDr. Samuel Pastva, Ph.D. (cvičící)
Bc. Erik Sedlák (cvičící)
Matej Korž (cvičící)
Bc. Tomáš Rohlínek (cvičící)
Karel Čermák (cvičící)
Patrik Novák (cvičící)
Bc. Jakub Rádl (cvičící)
RNDr. Lukáš Ručka (cvičící)
Samuel Malec (cvičící)
Bc. Petr Kubica (cvičící)
Ing. Jan Král, Ph.D. (cvičící)
Jiří Pastrňák (pomocník)
Garance
RNDr. Petr Ročkai, 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
Pá 21. 2. až Pá 16. 5. Pá 16:00–17:50 140
  • Rozvrh seminárních/paralelních skupin:
PB111/01: Po 17. 2. až Po 12. 5. Po 16:00–17:50 C122, P. Ročkai
PB111/02: Út 18. 2. až Út 13. 5. Út 10:00–11:50 C122, V. Uhlík
PB111/03: St 19. 2. až St 14. 5. St 8:00–9:50 C121, A. Matoušek
PB111/04: Čt 20. 2. až Čt 15. 5. Čt 8:00–9:50 C122; a Po 19. 5. 8:00–9:50 C122, T. Waldsberger
PB111/05: Út 18. 2. až Út 13. 5. Út 18:00–19:50 C121, J. Sabo
PB111/06: Čt 20. 2. až Čt 15. 5. Čt 14:00–15:50 C122; a Po 19. 5. 14:00–15:50 C122, T. Pavlík
PB111/07: St 19. 2. až St 14. 5. St 14:00–15:50 C122, T. Pavlík
PB111/08: Po 17. 2. až Po 12. 5. Po 12:00–13:50 C121, P. Trnavský
PB111/09: Po 17. 2. až Po 12. 5. Po 18:00–19:50 C122, S. Pastva
PB111/10: Čt 20. 2. až Čt 15. 5. Čt 10:00–11:50 C122; a Po 19. 5. 10:00–11:50 C122, J. Král
PB111/11: Út 18. 2. až Út 13. 5. Út 8:00–9:50 C122, E. Sedlák
PB111/12: St 19. 2. až St 14. 5. St 18:00–19:50 C121, M. Korž
PB111/13: Po 17. 2. až Po 12. 5. Po 10:00–11:50 C121, T. Rohlínek
PB111/14: Út 18. 2. až Út 13. 5. Út 12:00–13:50 C121, T. Rohlínek
PB111/15: St 19. 2. až St 14. 5. St 12:00–13:50 C121, K. Čermák
PB111/16: Čt 20. 2. až Čt 15. 5. Čt 16:00–17:50 C122; a Po 19. 5. 16:00–17:50 C122, L. Ručka
PB111/17: Po 17. 2. až Po 12. 5. Po 8:00–9:50 C121, J. Rádl
PB111/18: Čt 20. 2. až Čt 15. 5. Čt 12:00–13:50 C121; a Po 19. 5. 12:00–13:50 C121, P. Novák
PB111/19: Po 17. 2. až Po 12. 5. Po 14:00–15:50 C122, S. Malec
PB111/20: Út 18. 2. až Út 13. 5. Út 10:00–11:50 C121, P. Kubica
Předpoklady
IB111 Základy programování && PB151 Výpočetní systémy
Schopnost aplikovat základní postupy programování – řízení toku, definice dat, abstrakce, dekompozice, rekurze.
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á 38 mateřských oborů, zobrazit
Cíle předmětu
Osvojit si elementární výpočetní prostředky počítače, porozumět jejich vztahu k abstraktnějším formám výpočtu a zejména do hloubky pochopit klíčové abstrakce a jejich realizaci: proměnná, větvení a cyklus, podprogram a jeho volání, předávání parametrů, návratová hodnota, organizace dat v paměti – pole a záznam, dynamická alokace. Rozvinout schopnost dekomponovat výpočetní problémy a budovat složitější abstrakce ze základních zmiňovaných.
Výstupy z učení
Student bude po absolvování předmětu schopen:
• pojmenovat a popsat základní abstrakce používané v programování;
• popsat jejich realizaci použitím elementárních výpočetních prostředků;
• naprogramovat zjednodušené verze standardních funkcí pro práci s pamětí a daty;
• napsat jednoduchý program v jazyce C.
Osnova
  • Blok 1: Model výpočtu
    1. abstraktní stroj,
    2. lokální proměnné, strukturované řízení toku,
    3. podprogramy a jejich volání
    4. adresa proměnné, pole, záznam.

  • Blok 2: Organizace paměti
    5. práce s nestrukturovanou pamětí,
    6. realizace zřetězeného seznamu,
    7. dynamická alokace – lineární alokátor, podprogram malloc,
    8. alokátor typu first-fit, podprogram free.

  • Blok 3: Datové struktury a algoritmy
    9. dynamické pole, podprogram realloc,
    10. binární halda a prioritní fronta,
    11. hašovací tabulka s pevnou a proměnnou velikostí klíče,
    12. vyhledávací strom.

Výukové metody
přednáška, týdenní programovací úkoly, seminář, 3 sady větších programovacích úloh
Metody hodnocení
Práce během semestru (dle vlastního výběru): aktivní účast ve cvičení + týdenní programovací cvičení + 3 sady větších domácích úloh + 3 průběžné programovací testy. Hodnoceno souhrnně ve čtyřtýdenních blocích. Zkouška: programovací test u školního počítače bez přístupu k internetu.
Navazující předměty
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ů
Předmět je zařazen také v obdobích jaro 2024.
  • Statistika zápisu (nejnovější)
  • Permalink: https://is.muni.cz/predmet/fi/jaro2025/PB111