Course details
Introduction to Programming Systems
IZP Acad. year 2021/2022 Winter semester 7 credits
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).
Guarantor
Course coordinator
Language of instruction
Completion
Time span
- 39 hrs lectures
- 12 hrs exercises
- 22 hrs pc labs
- 5 hrs projects
Assessment points
- 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.
Hříbek David, Ing.
Hurta Martin, Ing. (DCSY)
Hynek Jiří, Ing., Ph.D. (DIFS)
Koutenský Michal, Ing. (DIFS)
Kozák David, Ing. (DITS)
Malík Viktor, Ing., Ph.D. (DITS)
Očenášek Pavel, Mgr. Ing., Ph.D.
Omachtová Alena, Ing. (CVT)
Orsák Michal, Ing. (DCSY)
Pavela Jiří, Ing. (DITS)
Pomikálek Jiří, Ing.
Rozman Jaroslav, Ing., Ph.D. (DITS)
Smrčka Aleš, Ing., Ph.D. (DITS)
Šišmiš Lukáš, Ing. (DCSY)
Vašíček Ondřej, Ing. (DITS)
Vlnas Michal, Ing. (DCGM)
Žufan Petr, Ing.
Subject specific learning outcomes and competences
Student acquaints with the methods of analysing and designing simple computer algorithms. The fundamental concepts of programming languages will be introduced to the student. The student will learn how to write programs in high programming languages and how to understand and use the EBNF to describe programming language syntax. The student will also acquire basic English terminology of programming, syntax, and semantics of programming language. 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
To grasp an analysis of problems and to determine basic algorithms for their solving. To acquaint oneself with principles and features of high programming language and to possess them for implementing of algorithms. To learn how to use tools for program debugging. To get the basic knowledge of data representation in the memory of the computer. To make the acquaintance of testing principles of programs. To possess active basic algorithms. To learn how to document, to present, and to defend the reached 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
- 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.
Syllabus of numerical exercises
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
Syllabus of computer exercises
- 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.
Syllabus - others, projects and individual work of students
- Work with text.
- Working with data structures.
Progress assessment
- Evaluated home assignments with the defence - 26 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 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.
Exam prerequisites
- The student has to get at least 20 of the points from the projects, practise and mid-term test for receiving the credit and then for entering the final exam.
- 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