FI:IB111 Foundations of Programming - Course Information
IB111 Foundations of Programming
Faculty of InformaticsAutumn 2026
- 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)
Mgr. Marek Trtík, Ph.D. (lecturer)
RNDr. Lukáš Ručka (seminar tutor)
Bc. Vladimír Uhlík (seminar tutor)
Karel Čermák (seminar tutor)
RNDr. Jakub Gajarský, Ph.D. (seminar tutor)
Jiří Pastrňák (assistant)
prof. RNDr. Jiří Barnat, Ph.D. (seminar tutor)
Ing. Josef Melkus (seminar tutor)
Karel Pýcha (seminar tutor)
Lukáš Ševc (seminar tutor)
Bc. Jan Samek (seminar tutor)
Matúš Bárány (seminar tutor)
Matej Opálený (seminar tutor)
Bc. Boris Lukačovič (seminar tutor)
Juraj Osuský (seminar tutor)
Peter Rakšány (seminar tutor)
Bc. Martin Tvarožek (seminar tutor)
Bc. Iva Kasprzaková (seminar tutor)
Bc. et Bc. Jakub Rádl (seminar tutor)
Bc. Samuel Malec (seminar tutor)
Bc. Pavol Trnavský (seminar tutor)
Tomáš Hutňan (seminar tutor)
Bc. Tomáš Marek (seminar tutor)
Bc. Jozef Sabo (seminar tutor)
Jana Jarošová (seminar tutor)
Robin Drozd (seminar tutor)
Anna Tomalová (seminar tutor)
Bc. Patrik Novák (seminar tutor)
Sebastian Vaško Da Silva (seminar tutor)
Martin Sedlák (seminar tutor)
Peter Hazlinger (seminar tutor)
Šimon Jelínek (seminar tutor)
Ella Gyurkovská (seminar tutor)
Pavla Bártová (seminar tutor)
Mgr. Anna Řechtáčková (assistant)
doc. RNDr. Petr Švenda, Ph.D. (assistant) - Providers of Specific teaching support
- Zbyněk Cincibus (přepisovatel)
- Guaranteed by
- prof. Ing. Tomáš Vojnar, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Contact Person: prof. Ing. Tomáš Vojnar, Ph.D.
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Fri 18. 9. to Fri 18. 12. Fri 10:00–11:50 140
- Timetable of Seminar Groups:
IB111/02: Wed 23. 9. to Wed 16. 12. Wed 14:00–15:50 C122, K. Pýcha
IB111/03: Fri 25. 9. to Fri 18. 12. Fri 8:00–9:50 C122, Prozatím se neotevírá.
IB111/04: Tue 22. 9. to Tue 15. 12. Tue 10:00–11:50 C122, L. Ručka
IB111/05: Tue 22. 9. to Tue 15. 12. Tue 18:00–19:50 C121, J. Gajarský
IB111/06: Thu 24. 9. to Thu 17. 12. Thu 14:00–15:50 S405, J. Barnat
IB111/07: Mon 21. 9. to Mon 14. 12. Mon 10:00–11:50 A219, Prozatím se neotevírá.
IB111/08: Thu 24. 9. to Thu 17. 12. Thu 16:00–17:50 C122, J. Melkus
IB111/09: Thu 24. 9. to Thu 17. 12. Thu 18:00–19:50 C122, K. Čermák
IB111/10: Thu 24. 9. to Thu 17. 12. Thu 16:00–17:50 A219, V. Uhlík
IB111/11: Wed 23. 9. to Wed 16. 12. Wed 18:00–19:50 S405, Přehozeno se skupinou 02 kvůli konfliktu s přednáškou s MZI.
IB111/12: Tue 22. 9. to Tue 15. 12. Tue 14:00–15:50 C121, L. Ševc
IB111/13: Tue 22. 9. to Tue 15. 12. Tue 8:00–9:50 C121, Prozatím se neotevírá.
IB111/14: Mon 21. 9. to Mon 14. 12. Mon 12:00–13:50 A219, J. Samek
IB111/15: Mon 21. 9. to Mon 14. 12. Mon 14:00–15:50 C121, M. Bárány
IB111/16: Tue 22. 9. to Tue 15. 12. Tue 12:00–13:50 C122, M. Opálený
IB111/17: Tue 22. 9. to Tue 15. 12. Tue 18:00–19:50 A219, B. Lukačovič
IB111/18: Mon 21. 9. to Mon 14. 12. Mon 16:00–17:50 C122, J. Osuský
IB111/19: Tue 22. 9. to Tue 15. 12. Tue 18:00–19:50 S405, S. Malec
IB111/20: Mon 21. 9. to Mon 14. 12. Mon 18:00–19:50 S405, P. Rakšány
IB111/21: Tue 22. 9. to Tue 15. 12. Tue 16:00–17:50 A219, M. Tvarožek
IB111/22: Tue 22. 9. to Tue 15. 12. Tue 14:00–15:50 C122, I. Kasprzaková
IB111/23: Thu 24. 9. to Thu 17. 12. Thu 8:00–9:50 S405, Prozatím se neotevírá.
IB111/24: Thu 24. 9. to Thu 17. 12. Thu 10:00–11:50 C121, J. Rádl
IB111/25: Thu 24. 9. to Thu 17. 12. Thu 16:00–17:50 C121, Prozatím se neotevírá.
IB111/26: Thu 24. 9. to Thu 17. 12. Thu 12:00–13:50 S405, P. Trnavský
IB111/27: Thu 24. 9. to Thu 17. 12. Thu 12:00–13:50 C121, T. Hutňan
IB111/28: Thu 24. 9. to Thu 17. 12. Thu 18:00–19:50 S405, T. Marek
IB111/29: Mon 21. 9. to Mon 14. 12. Mon 16:00–17:50 A219, J. Sabo
IB111/30: Wed 23. 9. to Wed 16. 12. Wed 12:00–13:50 S405, J. Jarošová
IB111/31: Mon 21. 9. to Mon 14. 12. Mon 8:00–9:50 A219, R. Drozd
IB111/32: Wed 23. 9. to Wed 16. 12. Wed 14:00–15:50 A219, A. Tomalová
IB111/33: Mon 21. 9. to Mon 14. 12. Mon 14:00–15:50 A219, Prozatím se neotevírá.
IB111/34: Tue 22. 9. to Tue 15. 12. Tue 10:00–11:50 A219, P. Novák
IB111/35: Tue 22. 9. to Tue 15. 12. Tue 12:00–13:50 C121, S. Vaško Da Silva
IB111/36: Thu 24. 9. to Thu 17. 12. Thu 14:00–15:50 C122, M. Sedlák
IB111/37: Tue 22. 9. to Tue 15. 12. Tue 12:00–13:50 A219, P. Hazlinger
IB111/38: Tue 22. 9. to Tue 15. 12. Tue 8:00–9:50 A219, Prozatím se neotevírá.
IB111/39: Mon 21. 9. to Mon 14. 12. Mon 18:00–19:50 A219, Š. Jelínek
IB111/40: Wed 23. 9. to Wed 16. 12. Wed 14:00–15:50 C121, E. Gyurkovská
IB111/41: Mon 21. 9. to Mon 14. 12. Mon 12:00–13:50 C122, P. Bártová - Prerequisites (in Czech)
- !IB113 Introduction to Programming and Algorithms && !NOW(IB113 Introduction to Programming and Algorithms)
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
- Abstract
- 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.
- Key topics
- 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.
- Study resources and 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
- Approaches, practices, and methods used in teaching
- lectures, programming seminars, homeworks (programming)
- Method of verifying learning outcomes and course completion requirements
- 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 prerequisites of other courses
- IB002 Algorithms and Data Structures I
(IB015 || IB111) && !NOW(IB114) - IB113 Introduction to Programming and Algorithms
!NOW(IB111) && !IB111 && !PB162 && !PB161 && !PB071 && !IB001 && !PROGRAM(B-INF) && !PROGRAM(B-PVA) && !PROGRAM(B-CS) - IB114 Introduction to Programming and Algorithms II
(IB111 || IB113) && !IB002 && !NOW(IB002) - PB006 Principles of Programming Languages and OOP
(IB111 || NOW(IB111)) && (PB071 || PB111) - PB111 Principles of Low-level Programming
IB111 && PB151 - PB176 Basics of Quality and Managment of Source Code
PB006 || IB113 || IB111 || PB111 || PB071
- IB002 Algorithms and Data Structures I
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2026/IB111