IB113 Úvod do programování a algoritmizace

Fakulta informatiky
podzim 2021
Rozsah
2/2/1. 4 kr. (plus ukončení). Ukončení: zk.
Vyučováno prezenčně.
Vyučující
doc. Mgr. Radek Pelánek, Ph.D. (přednášející)
RNDr. Jaromír Plhák, Ph.D. (cvičící)
RNDr. Tomáš Effenberger, Ph.D. (cvičící)
Ing. Patrícia Andicsová (cvičící)
Mgr. Krištof Anetta (cvičící)
Bc. Richard Bechera (cvičící)
Bc. Veronika Burgerová (cvičící)
Mgr. Martina Cvinčeková (cvičící)
Ing. Šimon Fouček (cvičící)
Mgr. Vojtěch Krajňanský (cvičící)
Mgr. Ivana Krumlová (cvičící)
RNDr. Filip Lux (cvičící)
Mgr. et Mgr. Jaroslav Oľha (cvičící)
Mgr. Tomáš Pšorn (cvičící)
RNDr. Lukáš Ručka (cvičící)
Vojtěch Škaroupka (cvičící)
Garance
doc. Mgr. Radek Pelánek, Ph.D.
Katedra strojového učení a zpracování dat – Fakulta informatiky
Dodavatelské pracoviště: Katedra strojového učení a zpracování dat – Fakulta informatiky
Rozvrh
Po 13. 9. až Po 13. 12. Po 12:00–13:50 D1
  • Rozvrh seminárních/paralelních skupin:
IB113/01: Po 13. 9. až Po 13. 12. Po 14:00–15:50 B116, J. Plhák
IB113/02: Po 13. 9. až Po 13. 12. Po 16:00–17:50 B116, J. Plhák
IB113/03: Út 14. 9. až Út 14. 12. Út 10:00–11:50 B116, J. Plhák
IB113/04: Út 14. 9. až Út 14. 12. Út 16:00–17:50 B116, L. Ručka
IB113/05: Út 14. 9. až Út 14. 12. Út 14:00–15:50 B116, L. Ručka
IB113/06: Út 14. 9. až Út 14. 12. Út 8:00–9:50 B311, Š. Fouček, V. Škaroupka
IB113/07: Pá 17. 9. až Pá 17. 12. Pá 10:00–11:50 B311, V. Burgerová, T. Effenberger
IB113/08: St 15. 9. až St 15. 12. St 16:00–17:50 B117, I. Krumlová
IB113/09: Út 14. 9. až Út 14. 12. Út 18:00–19:50 B116, K. Anetta
IB113/10: Čt 16. 9. až Čt 16. 12. Čt 14:00–15:50 B117, J. Oľha
IB113/11: Po 13. 9. až Po 13. 12. Po 18:00–19:50 B117, V. Krajňanský
IB113/12: Čt 16. 9. až Čt 16. 12. Čt 18:00–19:50 B116, I. Krumlová
IB113/13: St 15. 9. až St 15. 12. St 18:00–19:50 B116, R. Bechera
Předpoklady
! NOW ( IB111 Základy programování ) && ! IB111 Základy programování && ! PB162 Programování Java && ! PB161 Programování v jazyce C++ && ! PB071 Principy nízkoúr. prog. && ! IB001 Úvod do prog. skrze C
Předmět je určen studentům neinformatických programů. Studenti FI si zapisují předmět IB111.
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
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. 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) a znát několik základních algoritmů.
Výstupy z učení
Student bude po absolvování předmětu:
- umět používat základní prostředky strukturovaného imperativního programování (proměnné, podmínky, cykly, funkce, složené datové typy);
- schopen napsat a odladit jednoduchý program v jazyce Python a při programování dodržovat doporučené zásady čitelnosti kódu;
- schopen používat základní datové typy a struktury (řetězce, seznamy, slovníky);
- mít povědomí o pokročilejších programátorských prvcích, jejichž zvládnutí je potřeba pro rozsáhlejší aplikace;
- znát několik klasických algoritmů a mít povědomí o základním přístupu k algoritmickému řešení problémů.
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ů: podmínky, cykly, základní datové typy, funkce, vstup a výstup.
  • Výpočty s čísly, číselné typy, využití náhody.
  • Datové struktury, seznamy, řetězce, vícerozměrná pole, slovníky, základy použití objektů.
  • Příklady základních algoritmů: největší společný dělitel, prvočísla, řadicí algoritmy, vyhledávání.
  • Želví grafika, bitmapová grafika, regulární výrazy, práce s textem.
  • Návrh programů, programátorské konvence, úprava kódu.
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 (150 bodů), programátorský test u počítače v průběhu semestru (100 bodů), závěrečná písemná zkouška (150 bodů). K úspěšnému zvládnutí je třeba získat alespoň 90 bodů z domácích úkolů, 50 bodů z programátorského testu a 80 bodů z písemné zkoušky.
Informace učitele
https://www.fi.muni.cz/~xpelanek/IB113/
Další komentáře
Studijní materiály
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích podzim 2017, podzim 2018, podzim 2019, podzim 2020, podzim 2022, podzim 2023.