Course detail

Programming for Mechanical Engineering

FSI-VCPAcad. year: 2025/2026

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

3

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

Drozdek, A.: Data Structures and Algorithms in C++. CENGAGE Learning, 2013. (EN)
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)

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, winter semester, compulsory

  • Programme N-MAI-P Master's 1 year of study, winter semester, compulsory-optional

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

1. Software engineering, terminology, specifics of software development in mechanical engineering.
2. SW life cycle. DevOps. CI/CD. Version control.
3. Concept of testing, analysis and review. TDD.
4. Software development paradigms used. The role of the software specialist in all stages of the software life cycle.
5. Basic problems and methods used in software development. Team development methods in terms of multi-developer collaboration, metrics and software quality. Tools used.
6. Development environments, linters, standards - tooling.
7. Software operation and maintenance.
8. Software implementation.
9. Software modelling methods used, UML.
10. Must-have knowledge of a software developer - Containers, Caching, Logging
11. Must-have knowledge of a software developer - Messaging, Monitoring, Telemetry
12. Must-have knowledge of a software developer - Orchestration/Choreography, Traceability
13. Must-have knowledge of a software developer - Using AI in software development

Computer-assisted exercise

26 hod., compulsory

Teacher / Lecturer

Syllabus

1. Visual Studio/ VS Code development environment. Simple console application.
2. Principles and types of programming languages. Common control structures of programming languages.
3.-5. OOP basics, data structures. Design and implementation of a console application in C#.
6. Refactoring I: dividing the project into functional blocks. SW packages.
7. Refactoring I: project versioning, teamwork. GIT.
8. Refactoring II: TDD concept, unit-testing.
9. Refactoring III: Static code analysis. Code readability. Use of linters.
10. Software containerization.
11. Refactoring IV: basic methods of application health monitoring, telemetry.
12. Refactoring IV: traceability.
13. Case studies, consultation.