Course detail

Algorithms and Programming Techniques

FSI-VCP-KAcad. year: 2023/2024

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

Czech

Number of ECTS credits

4

Mode of study

Not applicable.

Entry knowledge

The course expects basic knowledge of algorithms and computer literacy.

Rules for evaluation and completion of the course

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.
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.

Aims

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.

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.

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Kernighan, B. W. - Ritchie, D. M.: The C Programming Language
Stroustrup, B.: The C++ Programming Language

Recommended reading

Dumek, V. - Roupec, J.: Programování v jazyku C
Racek, S.: Objektově orientované programování v C++

Elearning

Classification of course in study plans

  • Programme B-STR-K Bachelor's

    specialization AIŘ , 2 year of study, winter semester, compulsory

Type of course unit

 

Guided consultation in combined form of studies

17 hod., compulsory

Teacher / Lecturer

Syllabus

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++.

Guided consultation

35 hod., optionally

Teacher / Lecturer

Syllabus

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.

Elearning