IB111 Základy programování

Fakulta informatiky
podzim 2021
Rozsah
2/2/1. 4 kr. (plus ukončení). Ukončení: zk.
Vyučující
RNDr. Nikola Beneš, Ph.D. (přednášející)
Bc. Stanislav Boboň (cvičící)
Bc. Patrik Čelko (cvičící)
Bc. Matej Dipčár (cvičící)
Mgr. David Dobrovolný (cvičící)
Mgr. Ján Dovjak (cvičící)
RNDr. Antonín Dufka (cvičící)
Bc. Matej Focko (cvičící)
Mgr. Tomáš Foltýnek, Ph.D. (cvičící)
Mgr. Samuel Gorta (cvičící)
Mgr. Jakub Hanko (cvičící)
Mgr. Jan Horáček (cvičící)
Mgr. Jan Jedelský (cvičící)
Mgr. Jan Juračka (cvičící)
Mgr. Nastasia Juračková (cvičící)
Ing. Miroslav Kadlec (cvičící)
Mgr. Jakub Bartolomej Košuth (cvičící)
Bc. Martin Kozlovský (cvičící)
Bc. Martin Krebs (cvičící)
Mgr. Matúš Kropuch (cvičící)
Bc. Filip Kučerák (cvičící)
Mgr. Roman Lacko (cvičící)
Mgr. et Mgr. Dominika Lauko (cvičící)
RNDr. Filip Lux (cvičící)
doc. RNDr. Martin Maška, Ph.D. (cvičící)
doc. RNDr. Pavel Matula, Ph.D. (cvičící)
Ing. Erik Moravec (cvičící)
RNDr. Petr Ročkai, Ph.D. (cvičící)
RNDr. Lukáš Ručka (cvičící)
Mgr. Anna Řechtáčková (cvičící)
Mgr. Jakub Slezáček (cvičící)
Ondřej Sojka (cvičící)
RNDr. Vladimír Štill, Ph.D. (cvičící)
Mgr. Tatiana Zbončáková (cvičící)
Bc. Dominik Adam (pomocník)
Bc. Michal Barnišin (pomocník)
Bc. Patrik Bašo (pomocník)
Bc. David Beneš (pomocník)
Bc. František Bínovský (pomocník)
Bc. Veronika Borýsková (pomocník)
Bc. Matěj Bukáček (pomocník)
Bc. David Dokoupil (pomocník)
Bc. Roman Dvořák (pomocník)
Bc. Terézia Fialová (pomocník)
Bc. Dominik Filip (pomocník)
Mgr. Martin Gendiar (pomocník)
Bc. Peter Greguš (pomocník)
Bc. Matej Grós (pomocník)
Bc. Jakub Halmeš (pomocník)
Bc. Ivan Hochman (pomocník)
Aleš Horna (pomocník)
Bc. Richard Jandušík (pomocník)
Bc. Tomáš Jaroš (pomocník)
Bc. Tomáš Jusko (pomocník)
Bc. Josef Karas (pomocník)
Bc. Tereza Kinská (pomocník)
Bc. Dominik Klement (pomocník)
Ing. Michal Klinka (pomocník)
Bc. Anna Mária Kollarčíková (pomocník)
Bc. David Konečný (pomocník)
Mgr. Lukáš Korenčik (pomocník)
Bc. Jakub Kováč (pomocník)
Bc. Michal Krejčíř (pomocník)
Bc. Tomáš Krchňák (pomocník)
Bc. Matyáš Kroupa (pomocník)
Bc. Petr Kubica (pomocník)
RNDr. Henrich Lauko, Ph.D. (pomocník)
Bc. Vladimír Lazárik (pomocník)
Bc. Jiří Loun (pomocník)
Bc. Marcel Lukčo (pomocník)
Bc. Martin Mackovík (pomocník)
Mgr. Tomáš Macháček (pomocník)
Tomáš Marek (pomocník)
Bc. Michal Masrna (pomocník)
Zuzana Matúšková (pomocník)
Bc. Ondřej Metelka (pomocník)
Bc. Júlia Michálková (pomocník)
Bc. Martin Lukas Mikuš (pomocník)
Bc. Ota Mikušek (pomocník)
Jiří Müller (pomocník)
Adam Mydla (pomocník)
Bc. Václav Nevyhoštěný (pomocník)
Bc. Damián Paranič (pomocník)
Bc. Bruno Petrus (pomocník)
Bc. Richard Plesník (pomocník)
Bc. Šimon Plhák (pomocník)
Bc. Eduard Ruisl (pomocník)
Bc. David Růžička (pomocník)
Mgr. Adam Rychlý (pomocník)
Bc. Jindřich Sedláček (pomocník)
Bc. Samuel Smoleniak (pomocník)
Bc. Michal Sokolík (pomocník)
Bc. Emma Sommerová (pomocník)
Bc. Andrej Srnka (pomocník)
Mgr. Alžbeta Strompová (pomocník)
Bc. František Stupka (pomocník)
Mgr. Ondřej Svoboda (pomocník)
Bc. Martin Šepeľa (pomocník)
Anna Šmatková (pomocník)
Bc. Adéla Štěpková (pomocník)
Bc. Tomáš Štucka (pomocník)
Bc. Ondřej Tesáček (pomocník)
Bc. Tereza Tódová (pomocník)
Bc. Vladimír Uhlík (pomocník)
RNDr. Vladimír Ulman, Ph.D. (pomocník)
Bc. Adam Valalský (pomocník)
Bc. Eric Vincent Valčík (pomocník)
Mgr. Šimon Varga (pomocník)
Bc. Matej Vavrek (pomocník)
Bc. Michal Vlček (pomocník)
Bc. Jan Zatloukal (pomocník)
Bc. Josef Žižka (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
Rozvrh
Po 13. 9. až Po 6. 12. Po 16:00–16:50 D1, Po 17:00–17:50 D1, Po 18:00–18:50 D1, Po 19:00–19:50 D1
  • Rozvrh seminárních/paralelních skupin:
IB111/konzultace: Pá 17. 9. až Pá 17. 12. Pá 12:00–15:50 B130
IB111/01: St 15. 9. až St 8. 12. St 14:00–15:50 A219, N. Beneš
IB111/01_nahrada: Rozvrh nebyl do ISu vložen.
IB111/02: Čt 16. 9. až Čt 9. 12. Čt 8:00–9:50 A219, P. Matula
IB111/02_nahrada: Rozvrh nebyl do ISu vložen. P. Matula
IB111/03: Út 14. 9. až Út 7. 12. Út 18:00–19:50 A219, S. Boboň
IB111/03_nahrada: Rozvrh nebyl do ISu vložen. S. Boboň
IB111/04: Út 14. 9. až Út 7. 12. Út 14:00–15:50 B117, P. Čelko
IB111/04_nahrada: Rozvrh nebyl do ISu vložen. P. Čelko
IB111/05: St 15. 9. až St 8. 12. St 8:00–9:50 A219, M. Dipčár
IB111/05_nahrada: Rozvrh nebyl do ISu vložen.
IB111/06: Út 14. 9. až Út 7. 12. Út 10:00–11:50 B311, D. Dobrovolný
IB111/06_nahrada: Rozvrh nebyl do ISu vložen. D. Dobrovolný
IB111/07: Čt 16. 9. až Čt 9. 12. Čt 16:00–17:50 B117, D. Dobrovolný
IB111/07_nahrada: Rozvrh nebyl do ISu vložen. D. Dobrovolný
IB111/08: Út 14. 9. až Út 7. 12. Út 8:00–9:50 A215, J. Dovjak
IB111/08_nahrada: Rozvrh nebyl do ISu vložen. J. Dovjak
IB111/09: Pá 17. 9. až Pá 10. 12. Pá 12:00–13:50 A219, A. Dufka
IB111/09_nahrada: Rozvrh nebyl do ISu vložen. A. Dufka
IB111/10: St 15. 9. až St 8. 12. St 16:00–17:50 A219, M. Focko
IB111/10_nahrada: Rozvrh nebyl do ISu vložen.
IB111/11: Čt 16. 9. až Čt 9. 12. Čt 16:00–17:50 B116, S. Gorta
IB111/11_nahrada: Rozvrh nebyl do ISu vložen. S. Gorta
IB111/12: Út 14. 9. až Út 7. 12. Út 16:00–17:50 A215, S. Gorta
IB111/12_nahrada: Rozvrh nebyl do ISu vložen. S. Gorta
IB111/13: St 15. 9. až St 8. 12. St 8:00–9:50 A215, J. Hanko
IB111/13_nahrada: Rozvrh nebyl do ISu vložen.
IB111/14: Čt 16. 9. až Čt 9. 12. Čt 8:00–9:50 A215, J. Horáček
IB111/14_nahrada: Rozvrh nebyl do ISu vložen. J. Horáček
IB111/15: Út 14. 9. až Út 7. 12. Út 8:00–9:50 B117, J. Slezáček
IB111/15_nahrada: Rozvrh nebyl do ISu vložen. J. Slezáček
IB111/16: St 15. 9. až St 8. 12. St 8:00–9:50 B116, J. Jedelský
IB111/16_nahrada: Rozvrh nebyl do ISu vložen.
IB111/17: Út 14. 9. až Út 7. 12. Út 14:00–15:50 A219, J. Juračka
IB111/17_nahrada: Rozvrh nebyl do ISu vložen. J. Juračka
IB111/18: Čt 16. 9. až Čt 9. 12. Čt 18:00–19:50 A219, M. Kadlec
IB111/18_nahrada: Rozvrh nebyl do ISu vložen. M. Kadlec
IB111/19: Čt 16. 9. až Čt 9. 12. Čt 16:00–17:50 A219, M. Kadlec
IB111/19_nahrada: Rozvrh nebyl do ISu vložen. M. Kadlec
IB111/20: Čt 16. 9. až Čt 9. 12. Čt 18:00–19:50 B311, J. Košuth
IB111/20_nahrada: Rozvrh nebyl do ISu vložen. J. Košuth
IB111/21: St 15. 9. až St 8. 12. St 12:00–13:50 B311, T. Foltýnek
IB111/21_nahrada: Rozvrh nebyl do ISu vložen.
IB111/22: Út 14. 9. až Út 7. 12. Út 16:00–17:50 B117, N. Juračková
IB111/22_nahrada: Rozvrh nebyl do ISu vložen. N. Juračková
IB111/23: Út 14. 9. až Út 7. 12. Út 8:00–9:50 B116, M. Kozlovský
IB111/23_nahrada: Rozvrh nebyl do ISu vložen. M. Kozlovský
IB111/24: Čt 16. 9. až Čt 9. 12. Čt 10:00–11:50 A215, M. Krebs
IB111/24_nahrada: Rozvrh nebyl do ISu vložen. M. Krebs
IB111/25: Út 14. 9. až Út 7. 12. Út 14:00–15:50 A215, D. Lauko
IB111/25_nahrada: Rozvrh nebyl do ISu vložen. D. Lauko
IB111/26: St 15. 9. až St 8. 12. St 16:00–17:50 B116, D. Lauko
IB111/26_nahrada: Rozvrh nebyl do ISu vložen.
IB111/27: St 15. 9. až St 8. 12. St 16:00–17:50 A215, M. Kropuch
IB111/27_nahrada: Rozvrh nebyl do ISu vložen.
IB111/28: St 15. 9. až St 8. 12. St 14:00–15:50 B116, T. Foltýnek
IB111/28_nahrada: Rozvrh nebyl do ISu vložen.
IB111/29: Út 14. 9. až Út 7. 12. Út 18:00–19:50 B117, F. Kučerák
IB111/29_nahrada: Rozvrh nebyl do ISu vložen. F. Kučerák
IB111/30: Pá 17. 9. až Pá 10. 12. Pá 8:00–9:50 A219, R. Lacko
IB111/30_nahrada: Rozvrh nebyl do ISu vložen. R. Lacko
IB111/31: St 15. 9. až St 8. 12. St 10:00–11:50 A215, F. Lux
IB111/31_nahrada: Rozvrh nebyl do ISu vložen.
IB111/32: Pá 17. 9. až Pá 10. 12. Pá 10:00–11:50 B116, M. Maška
IB111/32_nahrada: Rozvrh nebyl do ISu vložen.
IB111/33: Čt 16. 9. až Čt 9. 12. Čt 18:00–19:50 A215, E. Moravec
IB111/33_nahrada: Rozvrh nebyl do ISu vložen. E. Moravec
IB111/34: Po 13. 9. až Po 6. 12. Po 18:00–19:50 A219, E. Moravec
IB111/34_nahrada: Rozvrh nebyl do ISu vložen. E. Moravec
IB111/35: Pá 17. 9. až Pá 10. 12. Pá 10:00–11:50 A215, A. Řechtáčková
IB111/35_nahrada: Rozvrh nebyl do ISu vložen. A. Řechtáčková
IB111/36: Út 14. 9. až Út 7. 12. Út 8:00–9:50 A219, P. Ročkai
IB111/36_nahrada: Rozvrh nebyl do ISu vložen. P. Ročkai
IB111/37: Út 14. 9. až Út 7. 12. Út 10:00–11:50 A219, L. Ručka
IB111/37_nahrada: Rozvrh nebyl do ISu vložen. L. Ručka
IB111/38: St 15. 9. až St 8. 12. St 10:00–11:50 A219, L. Ručka
IB111/38_nahrada: Rozvrh nebyl do ISu vložen.
IB111/39: Čt 16. 9. až Čt 9. 12. Čt 10:00–11:50 B116, J. Horáček
IB111/39_nahrada: Rozvrh nebyl do ISu vložen. J. Horáček
IB111/40: Čt 16. 9. až Čt 9. 12. Čt 8:00–9:50 B116, O. Sojka
IB111/40_nahrada: Rozvrh nebyl do ISu vložen. O. Sojka
IB111/41: Pá 17. 9. až Pá 10. 12. Pá 10:00–11:50 A219, V. Štill
IB111/41_nahrada: Rozvrh nebyl do ISu vložen. V. Štill
IB111/42: St 15. 9. až St 8. 12. St 14:00–15:50 B130, V. Štill
IB111/42_nahrada: Rozvrh nebyl do ISu vložen.
IB111/43: St 15. 9. až St 8. 12. St 18:00–19:50 B311, T. Zbončáková
IB111/43_nahrada: Rozvrh nebyl do ISu vložen.
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.
Informace učitele
http://www.fi.muni.cz/IB111/
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 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 2022, podzim 2023, podzim 2024.