Course detail

Algorithms and Programming Techniques

FSI-VCPAcad. year: 2022/2023

The course deals with algorithms and programming. C and C ++ programming languages are used for practicing. C (and languages derived from it) is currently one of the most widely used programming languages. Its great advantages include its universal applicability for various application areas and availability for most existing platforms. The C ++ language shows a very high degree of implementation of the features of object-oriented programming. The C ++ compiler is available for various platforms, the language itself is very well standardized. These features make C ++ one of the most suitable languages for building large-scale applications today.

Language of instruction


Number of ECTS credits


Mode of study

Not applicable.

Learning outcomes of the course unit

Students will obtain the basic skills and experiences of program writing and debugging of average stage of difficulty. Students gain insight into principles and methods of object-oriented programming using C++ language.


The course expects basic knowledge of algorithms and computer literacy.


Not applicable.

Planned learning activities and teaching methods

The course is taught through lectures explaining the basic principles and theory of the discipline. Exercises are focused on practical topics presented in lectures.

Assesment methods and criteria linked to learning outcomes

The course-unit credit award requirements are both active participation in seminars and individual elaboration of two software projects (the first project in the C language and the second one in the C++ language). Students select their projects assignments, which are approved by the teacher. The examination is oral and consists of discussion on the created projects with possible complementary questions. The evaluation is fully in competence of a tutor according to the valid directives of BUT.

Course curriculum

Not applicable.

Work placements

Not applicable.


The aim of the course is to learn how to formulate algorithms for a wide range of engineering tasks, develop programs in C and C ++ languages and understand the features of object-oriented programming and methodology of program design and creation using OOP.

Specification of controlled education, way of implementation and compensation for absences

The attendance at lectures is recommended; the attendance at seminars is obligatory. Education runs according to week schedules. The form of compensation for missed seminars is fully in the competence of the tutor.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Kernighan, B. W. - Ritchie, D, M.: The C Programming Language. Second Edition. Prentice-Hall, 2012. (EN)
Stroustrup, B.: The C++ Programming Language, Fourth edition, Pearson Education, 2013. (EN)
Drozdek, A.: Data Structures and Algorithms in C++. CENGAGE Learning, 2013. (EN)

Recommended reading

Capper, D.M.: Introducing C++ for Scientists, Engineers and Mathematicians, Springer, 2001. (EN)
Virius, M.: Jazyky C a C++, kompletní průvodce. Grada, 2011. (CS)


Classification of course in study plans

  • Programme B-STR-P Bachelor's

    specialization AIŘ , 2. year of study, summer semester, compulsory

  • Programme N-AIŘ-P Master's, 1. year of study, summer semester, elective

  • Programme CŽV Lifelong learning

    branch CZV , 1. year of study, summer semester, compulsory

Type of course unit



26 hours, optionally

Teacher / Lecturer


1. Introduction, Basic Data Types. Operators, Expressions.
2. Declaration and Definition. Programm Structure. Control Structures.
3. Arrays and Pointers, Pointer Aritmetic. Functions.
4. Structures, Unions, Type Definition. Preprocessor. Files and Streams.
5. C++ Language History. Differences between C and C++ languages.
6. OOP basic concepts. Object data types, member functions.
7. Class member access control. Constructors and destructors. Static members. Operator overloading.
8. Inheritance. Polymorphism, virtual member functions, abstract classes.
9. C++ data streams. Data structures in C++.
10. Exceptions handling. Templates.
11. Object oriented analysis and design.
12. - 13. Design and development of large projects using C++.

Computer-assisted exercise

26 hours, compulsory

Teacher / Lecturer


1. Introduction to Visual Studio. Simple console application.
2. Console applications development using Visual Studio.
3.-5. Realization of C-programs for basic algorithms - array processing, pointers, dynamic data structures.
6. Large projects in C.
7. Constructrors and destructors.
8. Inheritance, polymorphism.
9. Data structures realization in C++.
10. Templates.
11. Event driven programming. Example of Windows application.
12. Simple projects in Java a C#.
13. Discussion of individual projects.