IB111 Foundations of Programming

Faculty of Informatics
Autumn 2025
Extent and Intensity
2/2/2. 5 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
In-person direct teaching
Teacher(s)
prof. Ing. Tomáš Vojnar, Ph.D. (lecturer)
RNDr. Petr Ročkai, Ph.D. (lecturer)
Bc. Kateřina Borošová (seminar tutor)
Bc. Richard Glosner (seminar tutor)
Bc. Jindřich Halabala (seminar tutor)
Petr Hejčl (seminar tutor)
Iva Kasprzaková (seminar tutor)
Mgr. Petr Kubica (seminar tutor)
Boris Lukačovič (seminar tutor)
Bc. Tomáš Marek (seminar tutor)
RNDr. Samuel Pastva, Ph.D. (seminar tutor)
Bc. et Bc. Jakub Rádl (seminar tutor)
Peter Rakšány (seminar tutor)
RNDr. Lukáš Ručka (seminar tutor)
Pavol Trnavský (seminar tutor)
Mgr. Marek Trtík, Ph.D. (seminar tutor)
Martin Tvarožek (seminar tutor)
Bc. Vladimír Uhlík (seminar tutor)
Peter Vajda (seminar tutor)
Matúš Bárány (seminar tutor)
Matej Beneš (seminar tutor)
Karel Čermák (seminar tutor)
Vladimír Drobný (seminar tutor)
Bc. Miroslav Gáll (seminar tutor)
Tomáš Hutňan (seminar tutor)
Bc. Samuel Malec (seminar tutor)
Matej Opálený (seminar tutor)
Juraj Osuský (seminar tutor)
Karel Pýcha (seminar tutor)
Linda Ráheľová (seminar tutor)
Jan Samek (seminar tutor)
Peter Schrimpel (seminar tutor)
Kristýna Sichová (seminar tutor)
Lukáš Ševc (seminar tutor)
Filip Škultéty (seminar tutor)
Eliška Zonygová (seminar tutor)
Mgr. Anna Řechtáčková (assistant)
Guaranteed by
prof. Ing. Tomáš Vojnar, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable
Fri 19. 9. to Fri 19. 12. Fri 10:00–11:50 140
  • Timetable of Seminar Groups:
IB111/01: Tue 23. 9. to Tue 16. 12. Tue 16:00–17:50 S405, T. Vojnar
IB111/02: Tue 23. 9. to Tue 16. 12. Tue 10:00–11:50 C121, P. Ročkai
IB111/03: Wed 24. 9. to Wed 17. 12. Wed 12:00–13:50 S405, M. Trtík
IB111/04: Wed 24. 9. to Wed 17. 12. Wed 8:00–9:50 S405, M. Trtík
IB111/05: Mon 22. 9. to Mon 15. 12. Mon 12:00–13:50 S405, S. Pastva
IB111/06: Thu 25. 9. to Thu 18. 12. Thu 10:00–11:50 C122, L. Ručka
IB111/07: Wed 24. 9. to Wed 17. 12. Wed 14:00–15:50 C121, L. Ručka
IB111/08: Mon 22. 9. to Mon 15. 12. Mon 16:00–17:50 C122, P. Kubica
IB111/09: Tue 23. 9. to Tue 16. 12. Tue 14:00–15:50 C122, M. Tvarožek
IB111/10: Wed 24. 9. to Wed 17. 12. Wed 12:00–13:50 C122, M. Tvarožek
IB111/11: Tue 23. 9. to Tue 16. 12. Tue 12:00–13:50 C121, I. Kasprzaková
IB111/12: Thu 25. 9. to Thu 18. 12. Thu 8:00–9:50 C122, P. Hejčl
IB111/13: Thu 25. 9. to Thu 18. 12. Thu 8:00–9:50 C121, K. Borošová
IB111/14: Fri 26. 9. to Fri 19. 12. Fri 8:00–9:50 C122, P. Schrimpel
IB111/15: Thu 25. 9. to Thu 18. 12. Thu 14:00–15:50 C122, P. Rakšány
IB111/16: Mon 22. 9. to Mon 15. 12. Mon 18:00–19:50 C121, P. Rakšány
IB111/17: Thu 25. 9. to Thu 18. 12. Thu 10:00–11:50 C121, L. Ševc
IB111/18: Mon 22. 9. to Mon 15. 12. Mon 8:00–9:50 C121, J. Halabala
IB111/19: Fri 26. 9. to Fri 19. 12. Fri 12:00–13:50 C122, J. Rádl
IB111/20: Tue 23. 9. to Tue 16. 12. Tue 8:00–9:50 C121, J. Rádl
IB111/21: Mon 22. 9. to Mon 15. 12. Mon 18:00–19:50 S405, B. Lukačovič
IB111/22: Thu 25. 9. to Thu 18. 12. Thu 16:00–17:50 C122, L. Ráheľová
IB111/23: Mon 22. 9. to Mon 15. 12. Mon 10:00–11:50 A219, R. Glosner
IB111/24: Mon 22. 9. to Mon 15. 12. Mon 14:00–15:50 S405, K. Čermák
IB111/25: Thu 25. 9. to Thu 18. 12. Thu 18:00–19:50 S405, T. Hutňan
IB111/26: Tue 23. 9. to Tue 16. 12. Tue 18:00–19:50 C122, T. Marek
IB111/27: Thu 25. 9. to Thu 18. 12. Thu 14:00–15:50 C121, P. Vajda
IB111/28: Tue 23. 9. to Tue 16. 12. Tue 8:00–9:50 S405, J. Osuský
IB111/29: Thu 25. 9. to Thu 18. 12. Thu 18:00–19:50 A219, K. Pýcha
IB111/30: Mon 22. 9. to Mon 15. 12. Mon 14:00–15:50 A219, K. Sichová
IB111/31: Tue 23. 9. to Tue 16. 12. Tue 16:00–17:50 A219, F. Škultéty
IB111/32: Mon 22. 9. to Mon 15. 12. Mon 12:00–13:50 C122, V. Uhlík
IB111/33: Tue 23. 9. to Tue 16. 12. Tue 14:00–15:50 A219, S. Malec
IB111/34: Fri 26. 9. to Fri 19. 12. Fri 8:00–9:50 A219, M. Bárány
IB111/35: Tue 23. 9. to Tue 16. 12. Tue 10:00–11:50 A219, E. Zonygová
IB111/36: Mon 22. 9. to Mon 15. 12. Mon 18:00–19:50 A219, J. Samek
IB111/37: Thu 25. 9. to Thu 18. 12. Thu 14:00–15:50 A219, P. Trnavský
IB111/38: Mon 22. 9. to Mon 15. 12. Mon 16:00–17:50 A219, V. Drobný
IB111/39: Wed 24. 9. to Wed 17. 12. Wed 10:00–11:50 A219, M. Beneš
IB111/40: Fri 26. 9. to Fri 19. 12. Fri 12:00–13:50 A219, M. Opálený
IB111/41: Tue 23. 9. to Tue 16. 12. Tue 18:00–19:50 A219, M. Gáll
Prerequisites (in Czech)
! IB113 Intro to Programming & Algs && !NOW( IB113 Intro to Programming & Algs )
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.
Course Enrolment Limitations
The course is only offered to the students of the study fields the course is directly associated with.
fields of study / plans the course is directly associated with
there are 6 fields of study the course is directly associated with, display
Course objectives
The course is an introduction to programming and algorithmic style of thinking.
Learning outcomes
At the end of the course students should be able to: understand and apply basic constructs of programming languages (e.g., conditions, loops, functions, basic data types); write and debug a program in Python; use basic data types and structures (strings, lists, dictionaries); describe several basic algorithms; describe main conventions and recommended programming style.
Syllabus
  • The course shows the basic elements of imperative programming and algorithmic thinking using the high-level programming language Python as an example.
  • Basic notions of imperative programming languages: variables and their semantics, expressions and statements, branching, cycles; subroutines (functions), passing parameters (calling functions), pure functions, predicates.
  • Numerical computation, basic data types, using the random generator.
  • Data structures, ADT, lists, strings, multidimensional arrays, sets, dictionaries, the basic of using objects to create user-defined data structures.
  • The basics of testing and debugging, preconditions and postconditions, type annotation.
  • Examples of basic algorithms: greatest common divisor, prime numbers, sorting algorithms, searching.
  • The efficiency of algorithms, the basics of complexity, the complexity of basic data structures operations.
  • Recursion and its specifics in the imperative paradigm, tail recursion; using recursion to work with tree data structures and to solve constraint satisfaction problems (the basics of the backtracking technique).
  • Interaction with the environment (I/O), turtle graphics, bitmap graphics, text processing.
  • Program design, programming styles and conventions, readability and maintainability of code, documentation and comments.
Literature
    recommended literature
  • PELÁNEK, Radek. Programátorská cvičebnice: algoritmy v příkladech. Brno: Computer Press, 2012, 175 pp. ISBN 978-80-251-3751-2. info
  • GUZDIAL, Mark and 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
Teaching methods
lectures, programming seminars, homeworks (programming)
Assessment methods
Assesment consists of 3 parts: homeworks, mid-term and final programming tests, final written test.
Language of instruction
Czech
Follow-Up Courses
Further Comments
Study Materials
The course is taught annually.
Listed among pre-requisites of other courses
The course is also listed under the following terms Autumn 2009, Autumn 2010, Autumn 2011, Autumn 2012, Autumn 2013, Autumn 2014, Autumn 2015, Autumn 2016, Autumn 2017, Autumn 2018, Autumn 2019, Autumn 2020, Autumn 2021, Autumn 2022, Autumn 2023, Autumn 2024.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2025/IB111