IB111 Foundations of Programming

Faculty of Informatics
Autumn 2024
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)
RNDr. Nikola Beneš, Ph.D. (lecturer)
Bc. Filip Bartek (seminar tutor)
Kryštof Bednařík (seminar tutor)
Kateřina Borošová (seminar tutor)
Vojtěch Brdečko (seminar tutor)
Bc. Oliver Bukor (seminar tutor)
Jindřich Burget (seminar tutor)
Bc. Samuel Čepela (seminar tutor)
Bc. Matej Focko (seminar tutor)
Mgr. Tomáš Foltýnek, Ph.D. (seminar tutor)
Richard Glosner (seminar tutor)
Mgr. Jan Jedelský (seminar tutor)
Mgr. Nastasia Juračková (seminar tutor)
Iva Kasprzaková (seminar tutor)
Boris Lukačovič (seminar tutor)
Tomáš Marek (seminar tutor)
Dominik Melkovič (seminar tutor)
RNDr. Samuel Pastva, Ph.D. (seminar tutor)
Miroslav Patlevič (seminar tutor)
Peter Rakšány (seminar tutor)
RNDr. Petr Ročkai, Ph.D. (seminar tutor)
RNDr. Lukáš Ručka (seminar tutor)
Erik Sedlák (seminar tutor)
Samuel Stančík (seminar tutor)
Bc. Dávid Šutor (seminar tutor)
Pavol Trnavský (seminar tutor)
Martin Tuček (seminar tutor)
Martin Tvarožek (seminar tutor)
Bc. Vladimír Uhlík (seminar tutor)
prof. Ing. Tomáš Vojnar, Ph.D. (seminar tutor)
Filip Weinberger (seminar tutor)
Mgr. Anna Winklerová (seminar tutor)
Jakub Wolek (seminar tutor)
Lukáš Záborský (seminar tutor)
Bc. Jan Zatloukal (seminar tutor)
Bc. Vladimír Žbánek (seminar tutor)
Tomáš Balák (assistant)
Radoslav Baník (assistant)
Matej Barna (assistant)
Jakub Béreš (assistant)
Pavol Biačko (assistant)
Jakub Borský (assistant)
Bc. Matěj Bukáček (assistant)
Richard Čech (assistant)
Karel Čermák (assistant)
Nikola Davidová (assistant)
Tomáš Drkoš (assistant)
Bc. Roman Dvořák (assistant)
Martin Ergang (assistant)
Bc. Frederik Fedorko (assistant)
Jan Frejlach (assistant)
Bc. Jan Glos (assistant)
Adam Hadar (assistant)
Jindřich Halabala (assistant)
Marek Halamka (assistant)
Petr Hejčl (assistant)
Jakub Horák (assistant)
Jana Jarošová (assistant)
Bc. Jakub Judiny (assistant)
Daniel Kamenov (assistant)
Ján Kapko (assistant)
Ing. Bc. Michaela Kecskésová (assistant)
Bc. Tereza Kinská (assistant)
Vojtěch Klapetek (assistant)
Tomáš Klostermann (assistant)
Matej Korž (assistant)
Bc. Patrik Kotúček (assistant)
Bc. Tomáš Krchňák (assistant)
Bc. Petr Kubica (assistant)
Adam Kubík (assistant)
Mgr. Roman Lacko (assistant)
Adam Lopatka (assistant)
Leon Ludvig (assistant)
Bc. Martin Mackovík (assistant)
Martin Marcinech (assistant)
Soňa Martišová (assistant)
Jindřich Matuška (assistant)
Bc. Ondřej Metelka (assistant)
Marcel Nadzam (assistant)
Patrik Novák (assistant)
Martin Ondulič (assistant)
Adam Pavelka (assistant)
Filip Pavlovič (assistant)
Barbora Piatková (assistant)
Ladislav Pittner (assistant)
Michal Rábek (assistant)
Bc. Jakub Rádl (assistant)
Bc. Tomáš Rohlínek (assistant)
Mgr. Anna Řechtáčková (assistant)
Jozef Sabo (assistant)
Jakub Simandl (assistant)
Soňa Sviatková (assistant)
Gabriel Szalona (assistant)
Andrej Tejbus (assistant)
Tomáš Tomíček (assistant)
Peter Vajda (assistant)
Bc. Adam Valalský (assistant)
Diana Valková (assistant)
Juraj Zemančík (assistant)
Veronika Zemanová (assistant)
Bc. Josef Žižka (assistant)
Guaranteed by
RNDr. Nikola Beneš, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable
Tue 24. 9. to Tue 17. 12. Tue 12:00–13:50 D2, Tue 12:00–13:50 D3, Tue 12:00–13:50 D1
  • Timetable of Seminar Groups:
IB111/T01: Tue 8. 10. to Fri 20. 12. Tue 15:00–17:40 Virtuální místnost, P. Trnavský, L. Záborský, Nepřihlašuje se. Určeno pro studenty se zdravotním postižením.
IB111/01: Fri 4. 10. to Fri 20. 12. Fri 10:00–11:50 B130, T. Foltýnek
IB111/01_nahrada: No timetable has been entered into IS. T. Foltýnek
IB111/02: Mon 30. 9. to Mon 16. 12. Mon 10:00–11:50 B130, A. Winklerová
IB111/03: Mon 30. 9. to Mon 16. 12. Mon 12:00–13:50 B011, N. Beneš
IB111/04: Thu 3. 10. to Thu 19. 12. Thu 10:00–11:50 B130, T. Vojnar
IB111/04_nahrada: No timetable has been entered into IS. T. Vojnar
IB111/05: Thu 3. 10. to Thu 19. 12. Thu 10:00–11:50 B011, P. Ročkai
IB111/05_nahrada: No timetable has been entered into IS. P. Ročkai
IB111/06: Fri 4. 10. to Fri 20. 12. Fri 8:00–9:50 B011, K. Borošová
IB111/06_nahrada: No timetable has been entered into IS. K. Borošová
IB111/07: Wed 2. 10. to Wed 18. 12. Wed 8:00–9:50 B011, L. Ručka
IB111/07_nahrada: No timetable has been entered into IS. L. Ručka
IB111/08: Fri 4. 10. to Fri 20. 12. Fri 8:00–9:50 A219, S. Pastva
IB111/08_nahrada: No timetable has been entered into IS. S. Pastva
IB111/09: Fri 4. 10. to Fri 20. 12. Fri 12:00–13:50 A219, S. Pastva
IB111/09_nahrada: No timetable has been entered into IS. S. Pastva
IB111/10: Thu 3. 10. to Thu 19. 12. Thu 16:00–17:50 B011, N. Juračková
IB111/10_nahrada: No timetable has been entered into IS. N. Juračková
IB111/11: Wed 2. 10. to Wed 18. 12. Wed 14:00–15:50 B011, J. Jedelský
IB111/11_nahrada: No timetable has been entered into IS. J. Jedelský
IB111/12: Mon 30. 9. to Mon 16. 12. Mon 8:00–9:50 A219, M. Focko
IB111/13: Mon 30. 9. to Mon 16. 12. Mon 10:00–11:50 A219, M. Focko
IB111/14: Tue 1. 10. to Tue 17. 12. Tue 16:00–17:50 B011, D. Šutor
IB111/14_nahrada: No timetable has been entered into IS. D. Šutor
IB111/15: Tue 1. 10. to Tue 17. 12. Tue 16:00–17:50 A219, V. Uhlík
IB111/16: Wed 2. 10. to Wed 18. 12. Wed 14:00–15:50 A219, V. Uhlík
IB111/17: Tue 1. 10. to Tue 17. 12. Tue 10:00–11:50 B011, J. Zatloukal
IB111/17_nahrada: No timetable has been entered into IS. J. Zatloukal
IB111/18: Wed 2. 10. to Wed 18. 12. Wed 18:00–19:50 A219, T. Marek
IB111/19: Thu 3. 10. to Thu 19. 12. Thu 10:00–11:50 A219, T. Marek
IB111/20: Thu 3. 10. to Thu 19. 12. Thu 8:00–9:50 B011, S. Čepela
IB111/20_nahrada: No timetable has been entered into IS. S. Čepela
IB111/21: Mon 30. 9. to Mon 16. 12. Mon 16:00–17:50 B011, V. Žbánek
IB111/22: Mon 30. 9. to Mon 16. 12. Mon 8:00–9:50 B011, E. Sedlák
IB111/23: Wed 2. 10. to Wed 18. 12. Wed 10:00–11:50 A215, P. Trnavský
IB111/24: Mon 30. 9. to Mon 16. 12. Mon 18:00–19:50 B011, F. Bartek
IB111/25: Thu 3. 10. to Thu 19. 12. Thu 12:00–13:50 A219, R. Glosner
IB111/25_nahrada: No timetable has been entered into IS. R. Glosner
IB111/26: Tue 1. 10. to Tue 17. 12. Tue 14:00–15:50 B011, M. Tuček
IB111/26_nahrada: No timetable has been entered into IS. M. Tuček
IB111/27: Wed 2. 10. to Wed 18. 12. Wed 14:00–15:50 A215, M. Patlevič
IB111/27_nahrada: No timetable has been entered into IS. M. Patlevič
IB111/28: Thu 3. 10. to Thu 19. 12. Thu 8:00–9:50 A219, L. Záborský
IB111/29: Thu 3. 10. to Thu 19. 12. Thu 16:00–17:50 A219, B. Lukačovič
IB111/30: Wed 2. 10. to Wed 18. 12. Wed 18:00–19:50 A215, O. Bukor
IB111/30_nahrada: No timetable has been entered into IS. O. Bukor
IB111/31: Mon 30. 9. to Mon 16. 12. Mon 12:00–13:50 A219, K. Bednařík
IB111/32: Wed 2. 10. to Wed 18. 12. Wed 12:00–13:50 B011, I. Kasprzaková
IB111/32_nahrada: No timetable has been entered into IS. I. Kasprzaková
IB111/33: Tue 1. 10. to Tue 17. 12. Tue 8:00–9:50 A219, D. Melkovič
IB111/34: Tue 1. 10. to Tue 17. 12. Tue 10:00–11:50 A219, V. Brdečko
IB111/35: Wed 2. 10. to Wed 18. 12. Wed 10:00–11:50 B130, S. Stančík, nepřihlašuje se, náhradní skupina
IB111/35_nahrada: No timetable has been entered into IS. N. Beneš
IB111/36: Wed 2. 10. to Wed 18. 12. Wed 12:00–13:50 A215, M. Tvarožek
IB111/36_nahrada: No timetable has been entered into IS. M. Tvarožek
IB111/37: Thu 3. 10. to Thu 19. 12. Thu 18:00–19:50 A219, J. Burget
IB111/37_nahrada: No timetable has been entered into IS. J. Burget
IB111/38: Mon 30. 9. to Mon 16. 12. Mon 16:00–17:50 A219, J. Wolek
IB111/39: Thu 3. 10. to Thu 19. 12. Thu 18:00–19:50 B011, F. Weinberger
IB111/39_nahrada: No timetable has been entered into IS. F. Weinberger
IB111/40: Tue 1. 10. to Tue 17. 12. Tue 18:00–19:50 A219, P. Rakšány
IB111/40_nahrada: No timetable has been entered into IS. P. Rakšány
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
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.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2024/IB111