IB111 Foundations of Programming

Faculty of Informatics
Autumn 2023
Extent and Intensity
2/2/2. 5 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
Teacher(s)
RNDr. Nikola Beneš, Ph.D. (lecturer)
Bc. Filip Bartek (seminar tutor)
Bc. David Beneš (seminar tutor)
Bc. Stanislav Boboň (seminar tutor)
Kateřina Borošová (seminar tutor)
Bc. Oliver Bukor (seminar tutor)
Bc. Samuel Čepela (seminar tutor)
Bc. Roman Dvořák (seminar tutor)
Bc. Matej Focko (seminar tutor)
Mgr. Tomáš Foltýnek, Ph.D. (seminar tutor)
Mgr. Samuel Gorta (seminar tutor)
Mgr. Jakub Hanko (seminar tutor)
Mgr. Martin Hofbauer (seminar tutor)
Mgr. Nastasia Juračková (seminar tutor)
Bc. Tomáš Jusko (seminar tutor)
Bc. David Kajan (seminar tutor)
Iva Kasprzaková (seminar tutor)
Tomáš Marek (seminar tutor)
Mgr. Luděk Matyska (seminar tutor)
RNDr. Vít Musil, Ph.D. (seminar tutor)
Adam Mydla (seminar tutor)
Miroslav Patlevič (seminar tutor)
Filip Prochác (seminar tutor)
RNDr. Petr Ročkai, Ph.D. (seminar tutor)
RNDr. Lukáš Ručka (seminar tutor)
doc. RNDr. Vojtěch Řehák, Ph.D. (seminar tutor)
Samuel Stančík (seminar tutor)
Pavol Trnavský (seminar tutor)
Bc. Vladimír Uhlík (seminar tutor)
Bc. Vladimír Žbánek (seminar tutor)
Kryštof Bednařík (seminar tutor)
Tomáš Balák (assistant)
Radoslav Baník (assistant)
Mgr. Luděk Bártek, Ph.D. (assistant)
Pavol Biačko (assistant)
Bc. Jiří Buchta (assistant)
Hoang Trung Bui (assistant)
Bc. Matěj Bukáček (assistant)
Jindřich Burget (assistant)
Richard Čech (assistant)
Nikola Davidová (assistant)
Bc. Frederik Fedorko (assistant)
Matúš Fedorko (assistant)
Richard Glosner (assistant)
Adam Hadar (assistant)
Boris Hajduk (assistant)
Marek Halamka (assistant)
Adam Haluška (assistant)
Jakub Horák (assistant)
Jozef Hoschek (assistant)
Jan Hrstka (assistant)
Kristián Chorvát (assistant)
Matúš Jakuboc (assistant)
Bc. Tomáš Jaroš (assistant)
Mgr. Vojtěch Jelínek (assistant)
Ján Kapko (assistant)
Mgr. Jakub Bartolomej Košuth (assistant)
Bc. Patrik Kotúček (assistant)
Bc. Petr Kubica (assistant)
Adam Lopatka (assistant)
Leon Ludvig (assistant)
Boris Lukačovič (assistant)
Samuel Malec (assistant)
Michal Marcin (assistant)
Soňa Martišová (assistant)
Mgr. Adam Matoušek (assistant)
Bc. Patrik Mažári (assistant)
Dominik Melkovič (assistant)
Bc. Ondřej Metelka (assistant)
Martin Nastoupil (assistant)
Bc. Radoslav Palkovič (assistant)
Bc. Damián Paranič (assistant)
Ladislav Pittner (assistant)
Jakub Plhal (assistant)
Ismail Ibrahim Quwarah (assistant)
Michal Rábek (assistant)
Kristián Řehoř (assistant)
Mgr. Anna Řechtáčková (assistant)
Bc. Jindřich Sedláček (assistant)
Erik Sedlák (assistant)
Jakub Semeniuk (assistant)
Richard Skokan (assistant)
Vojtěch Skyba (assistant)
Mgr. Bc. Roman Solař (assistant)
Bc. Emma Sommerová (assistant)
Bc. František Stupka (assistant)
Bc. Kamila Šamajová (assistant)
Vít Špunda (assistant)
Michel Šustek (assistant)
Bc. Ondřej Tesáček (assistant)
Yuliia Teslia (assistant)
Bc. Dominik Tichý (assistant)
Peter Toman (assistant)
Lukáš Tomoszek (assistant)
Martin Tuček (assistant)
Martin Tvarožek (assistant)
Ján Václav (assistant)
Bc. Adam Valalský (assistant)
Ondřej Valášek (assistant)
Diana Valková (assistant)
Matej Vavro (assistant)
Filip Weinberger (assistant)
Samuel Wittlinger (assistant)
Jakub Wolek (assistant)
Lukáš Záborský (assistant)
Bc. Jan Zatloukal (assistant)
Veronika Zemanová (assistant)
Adam Žitník (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 16:00–17:50 D1, Tue 16:00–17:50 D3, Tue 16:00–17:50 D2
  • Timetable of Seminar Groups:
IB111/konzultace1: Mon 14:00–14:50 A215
IB111/konzultace2: Tue 14:00–14:50 A215
IB111/konzultace3: No timetable has been entered into IS., PC hala, středa 14.00 - 15.00
IB111/konzultace4: Thu 14:00–14:50 B411
IB111/01: Wed 12:00–13:50 B011, V. Řehák
IB111/01_nahrada: No timetable has been entered into IS. V. Řehák
IB111/02: Thu 8:00–9:50 A219, T. Foltýnek
IB111/02_nahrada: No timetable has been entered into IS.
IB111/03: Wed 12:00–13:50 A219, N. Beneš
IB111/03_nahrada: No timetable has been entered into IS.
IB111/04: Tue 10:00–11:50 B130, P. Ročkai
IB111/04_nahrada: No timetable has been entered into IS. P. Ročkai
IB111/05: Tue 10:00–11:50 A219, V. Musil
IB111/05_nahrada: No timetable has been entered into IS.
IB111/06: Fri 12:00–13:50 A219, K. Borošová
IB111/06_nahrada: No timetable has been entered into IS.
IB111/07: Thu 18:00–19:50 A219, L. Matyska
IB111/07_nahrada: No timetable has been entered into IS. L. Matyska
IB111/08: Thu 16:00–17:50 A219, L. Ručka
IB111/08_nahrada: No timetable has been entered into IS.
IB111/09: Mon 16:00–17:50 B011, J. Hanko
IB111/09_nahrada: No timetable has been entered into IS. J. Hanko
IB111/10: Thu 10:00–11:50 A219, M. Hofbauer
IB111/10_nahrada: No timetable has been entered into IS.
IB111/11: Tue 14:00–15:50 A219, S. Gorta
IB111/11_nahrada: No timetable has been entered into IS.
IB111/12: Mon 14:00–15:50 B130, N. Juračková
IB111/12_nahrada: No timetable has been entered into IS. N. Juračková
IB111/13: Mon 14:00–15:50 A219, S. Boboň
IB111/13_nahrada: No timetable has been entered into IS.
IB111/14: Fri 8:00–9:50 A219, M. Focko
IB111/14_nahrada: No timetable has been entered into IS.
IB111/15: Mon 16:00–17:50 A219, D. Beneš
IB111/15_nahrada: No timetable has been entered into IS. D. Beneš
IB111/16: Wed 8:00–9:50 A219, R. Dvořák
IB111/16_nahrada: No timetable has been entered into IS. R. Dvořák
IB111/17: Mon 18:00–19:50 A219, V. Uhlík
IB111/17_nahrada: No timetable has been entered into IS. V. Uhlík
IB111/18: Wed 10:00–11:50 B011, T. Marek
IB111/18_nahrada: No timetable has been entered into IS. T. Marek
IB111/19: Thu 16:00–17:50 B011, A. Mydla
IB111/19_nahrada: No timetable has been entered into IS. A. Mydla
IB111/20: Tue 8:00–9:50 A219, T. Jusko
IB111/20_nahrada: No timetable has been entered into IS. T. Jusko
IB111/21: Mon 8:00–9:50 A219, S. Čepela
IB111/21_nahrada: No timetable has been entered into IS.
IB111/22: Mon 8:00–9:50 B011, V. Žbánek
IB111/22_nahrada: No timetable has been entered into IS. V. Žbánek
IB111/23_nahrada: No timetable has been entered into IS.
IB111/24: Tue 18:00–19:50 A219, P. Trnavský
IB111/24_nahrada: No timetable has been entered into IS.
IB111/25: Wed 14:00–15:50 A219, F. Bartek
IB111/25_nahrada: No timetable has been entered into IS.
IB111/26: Wed 18:00–19:50 B130, M. Patlevič
IB111/26_nahrada: No timetable has been entered into IS. M. Patlevič
IB111/27: Fri 10:00–11:50 B130, O. Bukor
IB111/27_nahrada: No timetable has been entered into IS.
IB111/28: Mon 18:00–19:50 B011, D. Kajan
IB111/28_nahrada: No timetable has been entered into IS. D. Kajan
IB111/29: Wed 18:00–19:50 A219, I. Kasprzaková
IB111/29_nahrada: No timetable has been entered into IS. I. Kasprzaková, St 15. 11. 18.00--19.50 A219
IB111/30: Wed 10:00–11:50 A219, S. Stančík
IB111/30_nahrada: No timetable has been entered into IS.
IB111/31: Thu 8:00–9:50 B130, F. Prochác
IB111/31_nahrada: No timetable has been entered into IS. F. Prochác
IB111/32: Tue 14:00–15:50 B011, K. Bednařík
IB111/32_nahrada: No timetable has been entered into IS. K. Bednařík
IB111/33: Thu 10:00–11:50 B130, M. Tvarožek
IB111/33_nahrada: No timetable has been entered into IS.
IB111/34: Tue 18:00–19:50 B130, J. Burget
IB111/34_nahrada: No timetable has been entered into IS.
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 20 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 2024.
  • Enrolment Statistics (Autumn 2023, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2023/IB111