Základy programování: Zadat úkoly a zvládnout semestr

Tento předmět je určen primárně studentům informatických programů a poskytuje systematické pokrytí základů programování. Po ukončení předmětu by studenti měli být schopni používat základní programátorské konstrukce a zvládnout návrh programů, programátorské konvence, úpravu kódu, jeho čitelnost a udržovatelnost, dokumentaci a komentáře.

Struktura předmětu a hodnocení

Výuka je strukturována tak, aby pokryla klíčové aspekty programování. Během semestru jsou zadávány domácí úkoly a vnitrosemestrální písemky, které dohromady mohou přinést až 300 bodů. Tyto úkoly vypracovávejte zcela samostatně; opisování se trestá přísně. Závěrečná zkouška pak prověří celkové pochopení látky.

Důležité termíny a hodnocení:

  • Domácí úkoly a vnitrosemestrální písemky: až 300 bodů.
  • Závěrečná zkouška.

Nemáte nárok na opravu v případě nedostatečného zisku bodů z vnitrosemestrálních zkoušek nebo závěrečné zkoušky, což by mohlo vést k neukončení předmětu F bez možnosti další opravy.

Zadání projektů a úkolů

Součástí úlohy je také domyslet si vlastní zajímavé zadání. Vždy se snažte o originální a kreativní zpracování, aby výsledky nebyly dopředu zřejmé (triviálně odhadnutelné).

Příklady možných projektů:

  • Pexeso - procvičení použití objektů v Pythonu.
  • Simulace strategií pro sázení (např. forma Dilema vězně).
  • Zpracování dat - Najděte zajímavý zdroj dat a "zpracujte" jej (příp. zajímavé propojení více zdrojů dat).
  • Analýza dat - např. "Existují výrazné rozdíly v povahových vlastnostech mezi obyvateli různých států?". Tento projekt má dvě části: "rekurzivní fraktály" a "bitmapy".
  • Zpracování obrazu (detekce hran) - zpracujte více algoritmů a ty porovnejte.
  • Fyzikální simulace - např. podle nadmořské výšky, stínování kopců, simulátor "povodně", ...

Zpracujte statistiky, např. pravděpodobností, jak dlouho průměrně hra trvá. Cílem je vytvořit dostatečně rozsáhlý program, který demonstruje schopnost používat datové struktury a provádět analýzy.

Materiály odevzdáte do Odevzdávárny v ISu. Vedoucímu skupiny je třeba programy na konci semestru osobně prezentovat.

Ilustrace znázorňující různé fáze vývoje softwaru

Nástroje a programovací jazyky

Pro řešení úkolů lze využít různé programovací jazyky, jako je Python, Matlab, Java, Ruby, Fortran a jiné. Python je často preferován pro svou snadnou ovladatelnost a širokou škálu knihoven.

Je důležité naučit se používat standardní knihovny (např. knihovnu Image, implementace Pillow) a nástroje pro vizualizaci dat (např. QtiPlot, Gnuplot apod.).

Během zkoušky bude povoleno používat manuály, tutoriály a referenční příručky, ale kopírování cizích kódů nebo poradám s ostatními studenty na síti bude zapovězeno.

Závěrečná zkouška

Zkoušky probíhají prezenční formou a skládají se ze dvou částí. Studující si vyberou jednu ze dvou nabízených úloh a následně budou řešení diskutoovat se zkoušejícím. Cílem je ověřit schopnost přetavit popis algoritmu ve skutečný kód.

Zkouška se zaměřuje na řešení konkrétních úkolů, které mohou zahrnovat:

  • Řešení fyzikálního problému vyžadující řešení transcendentní rovnice (jednoduchou metodou popsanou v zadání).
  • Řešení dynamického systému vyžadující řešení systému obyčejných diferenciálních rovnic (metodou popsanou v zadání).

Jednoduché algoritmy budou podrobně popsány v zadání. V případě, že již existuje řešení, může být využito pouze pro srovnání.

Diagram toku řízení (flowchart) pro základní programovací logiku

Rozvrh cvičení

Rozvrh cvičení je rozdělen do několika skupin s různými časy a místnostmi. Níže je uveden přehled některých skupin a jejich rozvrh:

Skupina Den v týdnu Čas Místnost Vyučující
IB111/01 Úterý 16:00-17:50 S405 T.
IB111/02 Úterý 10:00-11:50 C121 P.
IB111/03 Středa 12:00-13:50 S405 M.
IB111/04 Středa 8:00-9:50 S405 M.
IB111/05 Pondělí 12:00-13:50 S405 S.
IB111/06 Čtvrtek 10:00-11:50 C122 L.
IB111/07 Středa 14:00-15:50 C121 L.
IB111/08 Pondělí 16:00-17:50 C122 P.

Úplný rozvrh včetně náhradních termínů je dostupný v ISu.

How to Become a PYTHON Developer - 2026 (Step-by-Step Guide) PYTHON Developer ROADMAP

Doporučená literatura

  • PELÁNEK, Radek. Programátorská cvičebnice: algoritmy v příkladech. Brno: Computer Press, 2012, 175 s. ISBN 978-80-251-3751-2.
  • GUZDIAL, Mark a Barbara ERICSON. Introduction to computing & programming in Python : a multimedia approach. 2nd ed. Upper Saddle River [N.J.]: Prentice Hall, 2010, xxiii, 401. ISBN 9780136060239.
  • ZELLE, John M. Python programming : an introduction to computer science. Wilsonville: Franklin, Beedle &Associates, 2004, xiv, 514. ISBN 1887902996.
Obálky doporučených knih

tags: #muni #zaklady #programovani #zadani