Course detail
Introduction to Programming Systems
FIT-IZPAcad. year: 2021/2022
Algorithms and problem solving: the strategy of problem-solving, structured decomposition, concept and features of the algorithm. Basic programming construction: syntax and semantics of high programming language, variables, types, expressions, control structures, procedures and functions, parameter passing, input/output, exceptional state processing. Basic data structures: simple data types, structured data types: array, record, file, strings. Dynamic data structures, the concept of pointers. Strategy for selecting an appropriate data structure. Recursion, the concept of recursion. Global and local variables. Simple recursive functions (procedures). Modular Design and abstraction. Concepts will be illustrated by using appropriate programming language. (ISO/IEC 9899:1999 Programming languages - C).
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
The student will learn the computer-aided solving of simple problems by elaborating projects. The student will learn to create the program documentation and defend the results of project solving.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Teaching is realized in the form of lectures, exercises and project solutions. Lectures have the character of an explanation of basic principles, methodology of the discipline, problems and their exemplary solutions. Exercises and project solutions support in particular the practical mastery of the material presented in lectures or assigned for independent study with the active participation of students.
Assesment methods and criteria linked to learning outcomes
- Evaluated home assignments with the defence - 26 points.
- Computer practices - 10 points.
- Mid-term written examination - 12 points.
- Final written examination - 54 points.
Course curriculum
Syllabus of lectures
- Introduction to the arrangement of studying. Structure and goals of classes. Properties of algorithms, notations for describing algorithms.
- Problem-solving techniques. Design and implementation of algorithms.
- Principles of high-level programming languages. Symbols and separators, constants, identifiers, variables, numbers representation, labels.
- The concept of data. Simple data types. Expressions and statements.
- Control structures. Blocks, scope, and activation.
- Functions, parameters of functions.
- Programs debugging.
- Text files, standard input and output.
- Structured data types.
- Recursion in programming.
- Pointer types and dynamic variables. Linked structures.
- Advanced programs debugging, verification, validation and documentation of source code.
- The modular construction of program.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
- Realisation and delivery of 2 home assignments.
- Demonstration of home assignments during computer practises.
- 10 computer practices.
- Delivered and controlled the source code documentation of one project.
- Mid-term written test.
- Final written examination. The minimal number of points which can be obtained from the final exam is 20. Otherwise, no points will be assigned to a student.
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
Recommended reading
Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.
McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670.
Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
Schildt, H.: Teach Yourself C, McGraw-Hill Companies, 2001.
Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
Teaching materials available on WWW.
The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
Elearning
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introduction to the arrangement of studying. Structure and goals of classes. Properties of algorithms, notations for describing algorithms.
- Problem-solving techniques. Design and implementation of algorithms.
- Principles of high-level programming languages. Symbols and separators, constants, identifiers, variables, numbers representation, labels.
- The concept of data. Simple data types. Expressions and statements.
- Control structures. Blocks, scope, and activation.
- Functions, parameters of functions.
- Programs debugging.
- Text files, standard input and output.
- Structured data types.
- Recursion in programming.
- Pointer types and dynamic variables. Linked structures.
- Advanced programs debugging, verification, validation and documentation of source code.
- The modular construction of program.
Fundamentals seminar
Teacher / Lecturer
Ing. Alena Omachtová
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Roman Andriushchenko
Ing. Jiří Hynek, Ph.D.
Ing. Michal Koutenský
Ing. Lukáš Šišmiš
Ing. Aleš Smrčka, Ph.D.
Ing. Jiří Pomikálek
Ing. David Hříbek
Ing. Petr Žufan
Ing. Martin Hurta
Ing. Jaroslav Rozman, Ph.D.
Ing. Jiří Pavela
Ing. František Grézl, Ph.D.
Ing. Michal Orsák
Ing. Daniel Dolejška
Ing. Michal Vlnas
Ing. David Kozák
Ing. Ondřej Vašíček
Ing. Viktor Malík, Ph.D.
Syllabus
Demonstration lessons:
- The elementary program development tools
- Programs compilation and running
- Simple programs in C language
- Data types, data types casting
- Control structures
- Functions, working with strings
- Basic debugging methods, debugging and profiling tools
- Programs input and output
- Recursion
- Working with memory
- Source code documentation, testing basics
- Modular programming, basics of plug-ins
Exercise in computer lab
Teacher / Lecturer
Ing. Dominik Harmim
Ing. Viktor Malík, Ph.D.
Ing. Michal Vlnas
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. David Hříbek
Ing. Jiří Hynek, Ph.D.
Ing. Jiří Pavela
Ing. Alena Omachtová
Ing. Michal Orsák
Ing. Daniel Dolejška
Ing. Petr Žufan
Ing. Jaroslav Rozman, Ph.D.
Ing. Roman Andriushchenko
Ing. František Grézl, Ph.D.
Ing. Ondřej Vašíček
Ing. Lukáš Šišmiš
Ing. Jiří Pomikálek
Ing. David Kozák
Ing. Michal Koutenský
Syllabus
- Operating instructions, log in the intranet, registration at the laboratory, email instruction, news groups IZP, Unix for a beginner, Dev C++ environment.
- Next seminars correspond to the content of individual lectures and demonstrate the presented topics. Defences of 3 projects. Computer practises contents: Making of programs, functions. Control structures, strings and studio. Pointer type, storage allocation. File operations. Recursive problems solving. Matrix operations.
Project
Teacher / Lecturer
Ing. Dominik Harmim
Ing. Daniel Dolejška
Ing. Ondřej Vašíček
Ing. David Kozák
Ing. Michal Koutenský
Ing. Michal Vlnas
Ing. Petr Žufan
Ing. Michal Orsák
Ing. David Hříbek
Ing. Martin Hurta
Ing. Viktor Malík, Ph.D.
Ing. Lukáš Šišmiš
Ing. Jiří Hynek, Ph.D.
Ing. Roman Andriushchenko
Ing. Aleš Smrčka, Ph.D.
Ing. Jiří Pomikálek
Ing. Jaroslav Rozman, Ph.D.
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. František Grézl, Ph.D.
Ing. Alena Omachtová
Syllabus
- Work with text.
- Working with data structures.
Elearning