FI:IB111 Foundations of Programming - Course Information
IB111 Foundations of Programming
Faculty of InformaticsAutumn 2022
- Extent and Intensity
- 2/2/1. 4 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
- Teacher(s)
- RNDr. Nikola Beneš, Ph.D. (lecturer)
prof. RNDr. Jiří Barnat, Ph.D. (seminar tutor)
Bc. David Beneš (seminar tutor)
Bc. Stanislav Boboň (seminar tutor)
Bc. Patrik Čelko (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. Nastasia Juračková (seminar tutor)
Bc. Tomáš Jusko (seminar tutor)
Mgr. Lukáš Korenčik (seminar tutor)
Bc. Martin Krebs (seminar tutor)
Bc. Tomáš Krchňák (seminar tutor)
Ing. Matěj Lang (seminar tutor)
Tomáš Marek (seminar tutor)
Adam Mydla (seminar tutor)
Bc. Vojtěch Nájemník (seminar tutor)
Bc. Bruno Petrus (seminar tutor)
Bc. Šimon Plhák (seminar tutor)
RNDr. Petr Ročkai, Ph.D. (seminar tutor)
RNDr. Lukáš Ručka (seminar tutor)
Mgr. Anna Řechtáčková (seminar tutor)
Ondřej Sojka (seminar tutor)
Bc. Vladimír Uhlík (seminar tutor)
Samuel Wittlinger (seminar tutor)
Bc. Vladimír Žbánek (seminar tutor)
Tomáš Balák (assistant)
Bc. Michal Barnišin (assistant)
Bc. Filip Bartek (assistant)
Pavol Biačko (assistant)
Ing. Dávid Bolvanský (assistant)
Bc. Matěj Bukáček (assistant)
Bc. Oliver Bukor (assistant)
Bc. Martin Cmiel (assistant)
Bc. Samuel Čepela (assistant)
Bc. Michal Drobný (assistant)
Bc. Štěpán Dvorský (assistant)
Bc. Roman Dvořák (assistant)
Bc. Adam Džadoň (assistant)
Bc. Terézia Fialová (assistant)
Bc. Jan Glos (assistant)
Bc. Filip Gregora (assistant)
Ondřej Hasman (assistant)
Mgr. Martin Hofbauer (assistant)
Bc. Ivan Hochman (assistant)
Bc. Tomáš Jaroš (assistant)
Ing. Miroslav Kadlec (assistant)
Bc. David Kajan (assistant)
Bc. Josef Karas (assistant)
Bc. Tereza Kinská (assistant)
Mgr. Jakub Bartolomej Košuth (assistant)
Bc. Matyáš Kroupa (assistant)
Bc. Petr Kubica (assistant)
Vojtěch Kůr (assistant)
Bc. Pavol Kyčina (assistant)
Adam Lopatka (assistant)
Mgr. Tomáš Macháček (assistant)
Bc. Patrik Mažári (assistant)
Bc. Ondřej Metelka (assistant)
Bc. Radoslav Palkovič (assistant)
Bc. Damián Paranič (assistant)
Miroslav Patlevič (assistant)
Bc. Daniel Rozehnal (assistant)
Bc. Jindřich Sedláček (assistant)
Erik Sedlák (assistant)
Jakub Semeniuk (assistant)
Bc. Richard Schwarz (assistant)
Richard Skokan (assistant)
Bc. Samuel Smoleniak (assistant)
Bc. Michal Sokolík (assistant)
Bc. Emma Sommerová (assistant)
Bc. František Stupka (assistant)
Bc. Kamila Šamajová (assistant)
Bc. Michal Šoltis (assistant)
Bc. Dominik Tichý (assistant)
Bc. Petra Tomanová (assistant)
Pavol Trnavský (assistant)
Bc. Adam Valalský (assistant)
Bc. Matej Vavrek (assistant)
Lukáš Záborský (assistant)
Bc. Jan Zatloukal (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
- Mon 16:00–17:50 D3, Mon 16:00–17:50 D2, Mon 16:00–17:50 D1
- Timetable of Seminar Groups:
IB111/konzultace01: Tue 14:00–15:00 B204
IB111/konzultace02: Wed 14:00–15:00 A219
IB111/konzultace03: No timetable has been entered into IS., Čtvrtek 14.30–15.30 PC hala
IB111/konzultace04: No timetable has been entered into IS., Pátek 14.00–15.00 A219
IB111/01: Thu 10:00–11:50 B011, D. Beneš
IB111/02: Mon 12:00–13:50 B011, N. Beneš
IB111/03: Wed 12:00–13:50 A219, S. Boboň
IB111/04: Tue 10:00–11:50 B011, P. Čelko
IB111/05: Tue 14:00–15:50 B011, P. Čelko
IB111/06: Tue 8:00–9:50 A219, M. Focko
IB111/07: Wed 14:00–15:50 B011, T. Foltýnek
IB111/08: Fri 8:00–9:50 B011, T. Foltýnek
IB111/09: Wed 10:00–11:50 B130, T. Foltýnek
IB111/10: Thu 16:00–17:50 B130, S. Gorta
IB111/11: Wed 12:00–13:50 B011, S. Gorta
IB111/12: Mon 10:00–11:50 B011, J. Hanko
IB111/13: Tue 10:00–11:50 B130, J. Hanko
IB111/14: Thu 18:00–19:50 B130, T. Jusko
IB111/15: Tue 16:00–17:50 A219, N. Juračková
IB111/16: Tue 18:00–19:50 B130, T. Krchňák
IB111/17: Mon 14:00–15:50 A219, M. Krebs
IB111/18: Thu 8:00–9:50 A219, T. Marek
IB111/19: Tue 18:00–19:50 A219, A. Mydla
IB111/20: Mon 14:00–15:50 B011, B. Petrus
IB111/21: Mon 18:00–19:50 A219, Š. Plhák
IB111/22: Wed 10:00–11:50 B011, L. Ručka
IB111/23: Wed 8:00–9:50 B011, L. Ručka
IB111/24: Thu 14:00–15:50 B011, O. Sojka
IB111/25: Wed 16:00–17:50 A219, O. Sojka
IB111/26: Wed 10:00–11:50 A219, V. Uhlík
IB111/27: Tue 14:00–15:50 A219, P. Ročkai
IB111/28: Fri 12:00–13:50 A219, A. Řechtáčková
IB111/29: Thu 18:00–19:50 A219, L. Korenčik
IB111/30: Mon 10:00–11:50 A219, V. Nájemník
IB111/31: Wed 18:00–19:50 A219, S. Wittlinger
IB111/32: Thu 16:00–17:50 A219, V. Žbánek
IB111/33: Thu 8:00–9:50 B011, J. Barnat
IB111/34: Wed 14:00–15:50 B130, M. Lang
IB111/35: Fri 10:00–11:50 B011, M. Lang
IB111/36: Mon 8:00–9:50 B011, náhradní skupina; otevře se v případě nedostatku míst - 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
- Applied Informatics (programme FI, B-AP)
- Bioinformatics (programme FI, B-AP)
- Informatics (programme FI, B-INF) (2)
- Public Administration Informatics (programme FI, B-AP)
- Informatics in education (programme FI, B-IVV) (2)
- Mathematical Informatics (programme FI, B-IN)
- Parallel and Distributed Systems (programme FI, B-IN)
- Computer Graphics and Image Processing (programme FI, B-IN)
- Computer Networks and Communication (programme FI, B-IN)
- Computer Systems and Data Processing (programme FI, B-IN)
- Programming and development (programme FI, B-PVA)
- Programmable Technical Structures (programme FI, B-IN)
- Social Informatics (programme FI, B-AP)
- Teacher of Informatics and IT administrator (programme FI, N-UCI)
- Informatics for secondary school teachers (programme FI, N-UCI) (2)
- Artificial Intelligence and Natural Language Processing (programme FI, B-IN)
- 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
- Further Comments
- Study Materials
The course is taught annually. - Listed among pre-requisites 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) - Naskoc8 Nulté cvičení IB111
fakulta(FI) && typ_studia(B) && semestr(1) && NOW(IB111) - PB006 Principles of Programming Languages and OOP
(IB111 || NOW(IB111)) && (PB071 || PB111) - PB111 Principles of low-level programming
IB111 && PB151 - PV275 Introduction to Quantum Computer Programming
( MB141 || MB151 || MB101 || MB201 ) && IB111
- IB002 Algorithms and data structures I
- Enrolment Statistics (Autumn 2022, recent)
- Permalink: https://is.muni.cz/course/fi/autumn2022/IB111