Course detail
Introduction to Programming Systems
FIT-IZPAcad. year: 2022/2023
Basic programming construction 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. Debugging, testing and documentation of the program. 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 how to write programs in high programming languages. The student will also acquire basic English terminology of programming, The student will be acquainted with testing principles of programs. The student will learn how to document, to present, and to defend the reached results. 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 - 24 points.
- Computer practices - 10 points.
- Mid-term written examination - 12 points.
- Final written examination - 54 points.
Course curriculum
Work placements
Aims
Familiarize yourself with data organization when solving problems. Actively master basic algorithms and be able to apply them in practical problems. Familiarize yourself with the principles of program testing. Learn how to use program debugging tools. Learn to document, defend and present achieved results.
Specification of controlled education, way of implementation and compensation for absences
- Realisation and delivery of 2 home assignments.
- Demonstration of home assignment 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 23. 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
- Programme BIT Bachelor's 1 year of study, winter semester, compulsory
- Programme BIT Bachelor's 1 year of study, winter semester, compulsory
- Programme IT-BC-3 Bachelor's
branch BIT , 1 year of study, winter semester, compulsory
- Programme BPC-IBE Bachelor's 0 year of study, winter semester, elective
- Programme BPC-TLI Bachelor's 0 year of study, winter semester, elective
- Programme BPC-ECT Bachelor's 0 year of study, winter semester, elective
- Programme BPC-AMT Bachelor's 0 year of study, winter semester, elective
- Programme BPC-MET Bachelor's 0 year of study, winter semester, elective
- Programme BPC-SEE Bachelor's 0 year of study, winter semester, elective
- Programme BPC-AUD Bachelor's
specialization AUDB-ZVUK , 0 year of study, winter semester, elective
specialization AUDB-TECH , 0 year of study, winter semester, elective - Programme BAK-MIn Bachelor's 2 year of study, winter semester, elective
- Programme VUB Bachelor's
branch VU-D , 2 year of study, winter semester, elective
branch VU-D , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
branch VU-VT , 2 year of study, winter semester, elective
branch VU-VT , 2 year of study, winter semester, elective
branch VU-VT , 2 year of study, winter semester, elective
branch VU-VT , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
branch VU-VT , 2 year of study, winter semester, elective
branch VU-D , 2 year of study, winter semester, elective
branch VU-VT , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
branch VU-IDT , 2 year of study, winter semester, elective
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Introductory information on the organization of teaching. Versioning and working tools of the programmer.
- Principles of programming languages. Control structures of programming languages.
- Pointer type, field, function.
- Text files, standard input/output. Structured data types.
- Debugging programs.
- Recurrent problems, numerical calculations and algorithms.
- Vectors and matrices.
- Search and sort.
- Recursion in programming.
- Advanced program debugging, verification and validation, source code documentation.
- Dynamic data structures.
- Joint structures.
- Modular structure of the program.
Fundamentals seminar
Teacher / Lecturer
Syllabus
Demonstration lessons:
- Development tools.
- Basic field work, string, manual pages.
- Work with the field, functions.
- Standard input and output, read from/write to file.
- Debugging programs.
- Iterative calculations.
- Control loop, automaton.
- Dynamic memory allocation.
- Recursion.
- Advanced Debugging and Documentation.
- Dynamic structures.
- Modular structure of programs.
Exercise in computer lab
Teacher / Lecturer
Ing. Jakub Husa, Ph.D.
Ing. Jaroslav Rozman, Ph.D.
Ing. Jakub Chlebík
Ing. Roman Andriushchenko
Ing. Viktor Malík, Ph.D.
Ing. Radek Hranický, Ph.D.
Ing. Miloš Musil, Ph.D.
Ing. Martin Hurta
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Jan Zavřel
Ing. David Kozák
Ing. Petr John
Ing. Daniel Dolejška
Ing. Dominik Harmim
Syllabus
- First programs and basic constructions
- Cycle, first work with fields
- Strings
- Functions and nested loops
- Data structures
- Introduction to indicators
- Work with pointers
- Dynamic allocation, debugging techniques and tools
- Algorithmization, recursion
- Structured data types
Project
Teacher / Lecturer
Ing. Jaroslav Rozman, Ph.D.
Ing. David Kozák
Ing. Daniel Dolejška
Mgr. Ing. Pavel Očenášek, Ph.D.
Ing. Jan Zavřel
Ing. Radek Hranický, Ph.D.
Ing. Petr John
Ing. Jakub Chlebík
Ing. František Grézl, Ph.D.
Ing. Jakub Husa, Ph.D.
Ing. Miloš Musil, Ph.D.
Ing. Martin Hurta
Ing. Roman Andriushchenko
Syllabus
- Work with text.
- Working with data structures.
Elearning