FI:IB111 Foundations of Programming - Course Information
IB111 Foundations of Programming
Faculty of InformaticsAutumn 2024
- 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)
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)
Bc. 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)
Mgr. Anna Řechtáčková (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 - 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
- Digital Linguistics (programme FI, N-DL)
- Informatics (programme FI, B-INF) (2)
- Cybersecurity (programme FI, B-CS)
- Programming and development (programme FI, B-PVA)
- 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
- The course is taught annually.
The course is taught: every week. - 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) - PB006 Principles of Programming Languages and OOP
(IB111 || NOW(IB111)) && (PB071 || PB111) - PB111 Principles of low-level programming
IB015 || IB111 - PV275 Introduction to Quantum Computer Programming
( MB141 || MB151 || MB101 || MB201 ) && IB111
- IB002 Algorithms and data structures I
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2024/IB111