Course details
Introduction to Programming Systems
IZP Acad. year 2022/2023 Winter semester 7 credits
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).
Guarantor
Course coordinator
Language of instruction
Completion
Time span
- 39 hrs lectures
- 12 hrs exercises
- 22 hrs pc labs
- 5 hrs projects
Assessment points
- 54 pts final exam (written part)
- 12 pts mid-term test (written part)
- 10 pts numeric exercises
- 24 pts projects
Department
Lecturer
Instructor
Dolejška Daniel, Ing. (DIFS)
Grézl František, Ing., Ph.D. (DCGM)
Harmim Dominik, Ing.
Hranický Radek, Ing., Ph.D. (DIFS)
Hurta Martin, Ing. (DCSY)
Husa Jakub, Ing. (DCSY)
Chlebík Jakub, Ing. (DCSY)
John Petr, Ing. (DIFS)
Kozák David, Ing. (DITS)
Malík Viktor, Ing., Ph.D. (DITS)
Musil Miloš, Ing., Ph.D. (DIFS)
Očenášek Pavel, Mgr. Ing., Ph.D. (DIFS)
Rozman Jaroslav, Ing., Ph.D. (DITS)
Smrčka Aleš, Ing., Ph.D. (DITS)
Zavřel Jan, Ing. (DIFS)
Subject specific learning outcomes and competences
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.
Learning objectives
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.
Why is the course taught
After taking the Introduction to Programming Systems, the student should be able to understand the basic notions, algorithms, and principles of high-level programming languages. A student will have a good skill of the programming and debugging in C language. The knowledge can be used in various areas of software development.
Prerequisite knowledge and skills
This course is placed in the winter term of the first year of the bachelor's study programme. Thus, we expect that students have the high school level knowledge of mathematics and using computers.
Study literature
- McConnell, S.: Code Complete, Microsoft Press, 2004, ISBN 0735619670.
- Kernighan, B., W., Ritchie, D., M.: Programovací jazyk C, Computer Press, Brno, 2006, ISBN 80-251-0897-X.
- Schildt, H.: Nauč se sám C, SoftPress s.r.o, Praha, 2001, ISBN 80-86497-16-X.
- Teaching materials available on WWW.
- Herout, P.: Učebnice jazyka C, Kopp, České Budějovice, 2009, 6. vyd., ISBN 978-80-7232-383-8.
- Soubor materiálů prezentovaných na přednáškách je dostupný na WWW.
- BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
- Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
- The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
- Kadlec, V.: Učíme se programovat v jazyce C, Computer Press, Praha, 2005, ISBN 80-7226-715-9.
- Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
- Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
- Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
- Schildt, H.: Teach Yourself C, McGraw-Hill Companies, 2001.
Fundamental literature
- BS ISO/IEC 9899:2011, Information technology. Programming languages. C, 2012, ISBN 978 0 580 80165 5.
- Virius, M.: Jazyky C a C++, Grada Publishing, 2011, ISBN 978-80-247-3917-5.
- 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.
- Wirth, N.: Algoritmy a štruktúry údajov, Alfa Bratislava, 1988.
- The C Standard : Incorporating Technical Corrigendum 1, by Standards Institute British, John Wiley & Sons, 2002, ISBN 0470845732.
- Harbison, P.: C: A Reference Manual (5th Edition), Prentice Hall, 2002, ISBN 013089592X.
- Cormen, T.: Introduction to Algorithms, The MIT Press, 2001, ISBN 0262032937.
Syllabus of lectures
- 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.
Syllabus of numerical exercises
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.
Syllabus of computer exercises
- 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
Syllabus - others, projects and individual work of students
- Work with text.
- Working with data structures.
Progress assessment
- Evaluated home assignments with the defence - 24 points.
- Computer practices - 10 points.
- Mid-term written examination - 12 points.
- Final written examination - 54 points.
Teaching methods and criteria
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.
Controlled instruction
- 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.
Exam prerequisites
- In order to receive a credit and thus to be admitted to the final exam, the student must obtain a total of at least 23 points (from projects, computer labs and from the half-semester test):
- from projects, at least 1 point from each project,
- at least 6 points from computer labs.
- Plagiarism and not allowed cooperation will cause that involved students are not classified and disciplinary action can be initiated.
How to contact the teacher
Teachers have consultation hours.
Course inclusion in study plans
- Programme BIT, 1st year of study, Compulsory
- Programme BIT (in English), 1st year of study, Compulsory
- Programme IT-BC-3, field BIT, 1st year of study, Compulsory