IB111 Základy programování

Fakulta informatiky
podzim 2023
Rozsah
2/2/2. 5 kr. (plus ukončení). Ukončení: zk.
Vyučující
RNDr. Nikola Beneš, Ph.D. (přednášející)
Bc. Filip Bartek (cvičící)
Bc. David Beneš (cvičící)
Bc. Stanislav Boboň (cvičící)
Kateřina Borošová (cvičící)
Bc. Oliver Bukor (cvičící)
Bc. Samuel Čepela (cvičící)
Bc. Roman Dvořák (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. Martin Hofbauer (cvičící)
Mgr. Nastasia Juračková (cvičící)
Bc. Tomáš Jusko (cvičící)
Bc. David Kajan (cvičící)
Iva Kasprzaková (cvičící)
Tomáš Marek (cvičící)
Mgr. Luděk Matyska (cvičící)
RNDr. Vít Musil, Ph.D. (cvičící)
Adam Mydla (cvičící)
Miroslav Patlevič (cvičící)
Filip Prochác (cvičící)
RNDr. Petr Ročkai, Ph.D. (cvičící)
RNDr. Lukáš Ručka (cvičící)
doc. RNDr. Vojtěch Řehák, Ph.D. (cvičící)
Samuel Stančík (cvičící)
Pavol Trnavský (cvičící)
Bc. Vladimír Uhlík (cvičící)
Bc. Vladimír Žbánek (cvičící)
Kryštof Bednařík (cvičící)
Tomáš Balák (pomocník)
Radoslav Baník (pomocník)
Mgr. Luděk Bártek, Ph.D. (pomocník)
Pavol Biačko (pomocník)
Bc. Jiří Buchta (pomocník)
Hoang Trung Bui (pomocník)
Bc. Matěj Bukáček (pomocník)
Jindřich Burget (pomocník)
Richard Čech (pomocník)
Nikola Davidová (pomocník)
Bc. Frederik Fedorko (pomocník)
Matúš Fedorko (pomocník)
Richard Glosner (pomocník)
Adam Hadar (pomocník)
Boris Hajduk (pomocník)
Marek Halamka (pomocník)
Adam Haluška (pomocník)
Jakub Horák (pomocník)
Jozef Hoschek (pomocník)
Jan Hrstka (pomocník)
Kristián Chorvát (pomocník)
Matúš Jakuboc (pomocník)
Bc. Tomáš Jaroš (pomocník)
Mgr. Vojtěch Jelínek (pomocník)
Ján Kapko (pomocník)
Mgr. Jakub Bartolomej Košuth (pomocník)
Bc. Patrik Kotúček (pomocník)
Bc. Petr Kubica (pomocník)
Adam Lopatka (pomocník)
Leon Ludvig (pomocník)
Boris Lukačovič (pomocník)
Samuel Malec (pomocník)
Michal Marcin (pomocník)
Soňa Martišová (pomocník)
Mgr. Adam Matoušek (pomocník)
Bc. Patrik Mažári (pomocník)
Dominik Melkovič (pomocník)
Bc. Ondřej Metelka (pomocník)
Martin Nastoupil (pomocník)
Bc. Radoslav Palkovič (pomocník)
Bc. Damián Paranič (pomocník)
Ladislav Pittner (pomocník)
Jakub Plhal (pomocník)
Ismail Ibrahim Quwarah (pomocník)
Michal Rábek (pomocník)
Kristián Řehoř (pomocník)
Mgr. Anna Řechtáčková (pomocník)
Bc. Jindřich Sedláček (pomocník)
Erik Sedlák (pomocník)
Jakub Semeniuk (pomocník)
Richard Skokan (pomocník)
Vojtěch Skyba (pomocník)
Mgr. Bc. Roman Solař (pomocník)
Bc. Emma Sommerová (pomocník)
Bc. František Stupka (pomocník)
Bc. Kamila Šamajová (pomocník)
Vít Špunda (pomocník)
Michel Šustek (pomocník)
Bc. Ondřej Tesáček (pomocník)
Yuliia Teslia (pomocník)
Bc. Dominik Tichý (pomocník)
Peter Toman (pomocník)
Lukáš Tomoszek (pomocník)
Martin Tuček (pomocník)
Martin Tvarožek (pomocník)
Ján Václav (pomocník)
Bc. Adam Valalský (pomocník)
Ondřej Valášek (pomocník)
Diana Valková (pomocník)
Matej Vavro (pomocník)
Filip Weinberger (pomocník)
Samuel Wittlinger (pomocník)
Jakub Wolek (pomocník)
Lukáš Záborský (pomocník)
Bc. Jan Zatloukal (pomocník)
Veronika Zemanová (pomocník)
Adam Žitník (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
Út 16:00–17:50 D1, Út 16:00–17:50 D3, Út 16:00–17:50 D2
  • Rozvrh seminárních/paralelních skupin:
IB111/konzultace1: Po 14:00–14:50 A215
IB111/konzultace2: Út 14:00–14:50 A215
IB111/konzultace3: Rozvrh nebyl do ISu vložen., PC hala, středa 14.00 - 15.00
IB111/konzultace4: Čt 14:00–14:50 B411
IB111/01: St 12:00–13:50 B011, V. Řehák
IB111/01_nahrada: Rozvrh nebyl do ISu vložen. V. Řehák
IB111/02: Čt 8:00–9:50 A219, T. Foltýnek
IB111/02_nahrada: Rozvrh nebyl do ISu vložen.
IB111/03: St 12:00–13:50 A219, N. Beneš
IB111/03_nahrada: Rozvrh nebyl do ISu vložen.
IB111/04: Út 10:00–11:50 B130, P. Ročkai
IB111/04_nahrada: Rozvrh nebyl do ISu vložen. P. Ročkai
IB111/05: Út 10:00–11:50 A219, V. Musil
IB111/05_nahrada: Rozvrh nebyl do ISu vložen.
IB111/06: Pá 12:00–13:50 A219, K. Borošová
IB111/06_nahrada: Rozvrh nebyl do ISu vložen.
IB111/07: Čt 18:00–19:50 A219, L. Matyska
IB111/07_nahrada: Rozvrh nebyl do ISu vložen. L. Matyska
IB111/08: Čt 16:00–17:50 A219, L. Ručka
IB111/08_nahrada: Rozvrh nebyl do ISu vložen.
IB111/09: Po 16:00–17:50 B011, J. Hanko
IB111/09_nahrada: Rozvrh nebyl do ISu vložen. J. Hanko
IB111/10: Čt 10:00–11:50 A219, M. Hofbauer
IB111/10_nahrada: Rozvrh nebyl do ISu vložen.
IB111/11: Út 14:00–15:50 A219, S. Gorta
IB111/11_nahrada: Rozvrh nebyl do ISu vložen.
IB111/12: Po 14:00–15:50 B130, N. Juračková
IB111/12_nahrada: Rozvrh nebyl do ISu vložen. N. Juračková
IB111/13: Po 14:00–15:50 A219, S. Boboň
IB111/13_nahrada: Rozvrh nebyl do ISu vložen.
IB111/14: Pá 8:00–9:50 A219, M. Focko
IB111/14_nahrada: Rozvrh nebyl do ISu vložen.
IB111/15: Po 16:00–17:50 A219, D. Beneš
IB111/15_nahrada: Rozvrh nebyl do ISu vložen. D. Beneš
IB111/16: St 8:00–9:50 A219, R. Dvořák
IB111/16_nahrada: Rozvrh nebyl do ISu vložen. R. Dvořák
IB111/17: Po 18:00–19:50 A219, V. Uhlík
IB111/17_nahrada: Rozvrh nebyl do ISu vložen. V. Uhlík
IB111/18: St 10:00–11:50 B011, T. Marek
IB111/18_nahrada: Rozvrh nebyl do ISu vložen. T. Marek
IB111/19: Čt 16:00–17:50 B011, A. Mydla
IB111/19_nahrada: Rozvrh nebyl do ISu vložen. A. Mydla
IB111/20: Út 8:00–9:50 A219, T. Jusko
IB111/20_nahrada: Rozvrh nebyl do ISu vložen. T. Jusko
IB111/21: Po 8:00–9:50 A219, S. Čepela
IB111/21_nahrada: Rozvrh nebyl do ISu vložen.
IB111/22: Po 8:00–9:50 B011, V. Žbánek
IB111/22_nahrada: Rozvrh nebyl do ISu vložen. V. Žbánek
IB111/23_nahrada: Rozvrh nebyl do ISu vložen.
IB111/24: Út 18:00–19:50 A219, P. Trnavský
IB111/24_nahrada: Rozvrh nebyl do ISu vložen.
IB111/25: St 14:00–15:50 A219, F. Bartek
IB111/25_nahrada: Rozvrh nebyl do ISu vložen.
IB111/26: St 18:00–19:50 B130, M. Patlevič
IB111/26_nahrada: Rozvrh nebyl do ISu vložen. M. Patlevič
IB111/27: Pá 10:00–11:50 B130, O. Bukor
IB111/27_nahrada: Rozvrh nebyl do ISu vložen.
IB111/28: Po 18:00–19:50 B011, D. Kajan
IB111/28_nahrada: Rozvrh nebyl do ISu vložen. D. Kajan
IB111/29: St 18:00–19:50 A219, I. Kasprzaková
IB111/29_nahrada: Rozvrh nebyl do ISu vložen. I. Kasprzaková, St 15. 11. 18.00--19.50 A219
IB111/30: St 10:00–11:50 A219, S. Stančík
IB111/30_nahrada: Rozvrh nebyl do ISu vložen.
IB111/31: Čt 8:00–9:50 B130, F. Prochác
IB111/31_nahrada: Rozvrh nebyl do ISu vložen. F. Prochác
IB111/32: Út 14:00–15:50 B011, K. Bednařík
IB111/32_nahrada: Rozvrh nebyl do ISu vložen. K. Bednařík
IB111/33: Čt 10:00–11:50 B130, M. Tvarožek
IB111/33_nahrada: Rozvrh nebyl do ISu vložen.
IB111/34: Út 18:00–19:50 B130, J. Burget
IB111/34_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
předmět má 20 mateřských oborů, zobrazit
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
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 2021, podzim 2022, podzim 2024.