IB111 Základy programování

Fakulta informatiky
podzim 2025
Rozsah
2/2/2. 5 kr. (plus ukončení). Ukončení: zk.
Vyučováno kontaktně
Vyučující
RNDr. Petr Ročkai, Ph.D. (přednášející)
prof. Ing. Tomáš Vojnar, Ph.D. (přednášející)
Kateřina Borošová (cvičící)
Bc. Richard Glosner (cvičící)
Jindřich Halabala (cvičící)
Petr Hejčl (cvičící)
Iva Kasprzaková (cvičící)
Bc. Petr Kubica (cvičící)
Boris Lukačovič (cvičící)
Bc. Tomáš Marek (cvičící)
RNDr. Samuel Pastva, Ph.D. (cvičící)
Bc. Jakub Rádl (cvičící)
Peter Rakšány (cvičící)
RNDr. Lukáš Ručka (cvičící)
Pavol Trnavský (cvičící)
Mgr. Marek Trtík, Ph.D. (cvičící)
Martin Tvarožek (cvičící)
Bc. Vladimír Uhlík (cvičící)
Peter Vajda (cvičící)
Matúš Bárány (pomocník)
Matej Beneš (pomocník)
Karel Čermák (pomocník)
Vladimír Drobný (pomocník)
Bc. Miroslav Gáll (pomocník)
Tomáš Hutňan (pomocník)
Samuel Malec (pomocník)
Matej Opálený (pomocník)
Juraj Osuský (pomocník)
Karel Pýcha (pomocník)
Linda Ráheľová (pomocník)
Jan Samek (pomocník)
Peter Schrimpel (pomocník)
Kristýna Sichová (pomocník)
Lukáš Ševc (pomocník)
Filip Škultéty (pomocník)
Eliška Zonygová (pomocník)
Garance
RNDr. Nikola Beneš, 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
! IB113 Úvod do progr. a algoritmizace && !NOW( IB113 Úvod do progr. a algoritmizace )
Předmět je určen primárně studentům informatických programů. Ostatním studentům je doporučeno zapsat si předmět IB113.
Omezení zápisu do předmětu
Předmět je určen pouze studentům mateřských oborů.
Mateřské obory/plány
Cíle předmětu
Předmět poskytuje systematické pokrytí základů programování. Pro výklad a cvičení je použit konkrétní programovací jazyk (Python), předmět se však zaměřuje na obecné principy uplatnitelné v mnoha různých programovacích jazycích.
Výstupy z učení
Po ukončení předmětu by studenti měli být schopni: používat základní programátorské konstrukce (např. podmínky, cykly, funkce, základní datové typy); napsat a odladit program v jazyce Python o rozsahu přibližně 200 řádků kódu; používat základní datové typy a struktury (řetězce, seznamy, slovníky); popsat několik základních algoritmů; popsat hlavní konvence a doporučený programátorský styl.
Osnova
  • Předmět ilustruje základní prvky imperativního programování a algoritmického myšlení skrze vysokoúrovňový jazyk Python a za bohatého použití ilustrativních příkladů.
  • Základní konstrukce imperativních programovacích jazyků: proměnné a jejich sémantika, výrazy a příkazy, větvení, cykly; podprogramy (funkce), předávání parametrů (volání funkcí), čisté funkce, predikáty.
  • Výpočty s čísly, základní datové typy, využití generátoru náhodných čísel.
  • Datové struktury, ADT, seznamy, řetězce, vícerozměrná pole, množiny, slovníky, základy použití objektů jako vlastních datových struktur.
  • Základy testování a ladění programů, vstupní a výstupní podmínky, typové anotace.
  • Příklady základních algoritmů: největší společný dělitel, prvočísla, řadicí algoritmy, vyhledávání.
  • Efektivita algoritmů, základy složitosti, složitost základních operací s datovými strukturami.
  • Rekurze a její specifika v imperativním prostředí, koncová (tail) rekurze; využití rekurze pro práci se stromovými strukturami a pro řešení problémů splnění omezení (základy techniky backtrackingu).
  • Interakce s prostředím (vstup/výstup), želví grafika, bitmapová grafika, práce s textem.
  • Návrh programů, programátorské konvence, úprava kódu, jeho čitelnost a udržovatelnost, dokumentace a komentáře.
Literatura
    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. info
  • 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. info
  • ZELLE, John M. Python programming : an introduction to computer science. Wilsonville: Franklin, Beedle &Associates, 2004, xiv, 514. ISBN 1887902996. info
Výukové metody
přednášky, povinná cvičení u počítače, domácí úkoly (příklady k programování)
Metody hodnocení
Hodnocení se skládá ze 3 částí: průběžné domácí úkoly, programátorské testy u počítače v průběhu a na závěr semestru, závěrečná písemná zkouška.
Navazující předměty
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ů
Předmět je zařazen také v obdobích podzim 2009, podzim 2010, podzim 2011, podzim 2012, podzim 2013, podzim 2014, podzim 2015, podzim 2016, podzim 2017, podzim 2018, podzim 2019, podzim 2020, podzim 2021, podzim 2022, podzim 2023, podzim 2024.
  • Statistika zápisu (nejnovější)
  • Permalink: https://is.muni.cz/predmet/fi/podzim2025/IB111