Course detail

Programming for Mechanical Engineering

FSI-VCP Acad. year: 2025/2026 Winter semester

The course aims to teach students the methods and habits used to create software solutions used in industry. The student will learn what is DevOps, container, unit-testing, etc. and thus master the most necessary knowledge that is already an industry standard.
The course deals with learning algorithmization and programming. C# programming language is used for hands-on learning. The C# language is one of the most widely used programming languages today. Its great advantages include its universal applicability to a wide variety of application domains and its availability for most existing platforms. The C# language has a very high degree of implementation of object-oriented programming features. The C# compiler tends to be available for different platforms, and the language itself is very well standardized. These features make C# one of the most suitable languages for creating large-scale applications today.

Learning outcomes of the course unit

Prerequisites

Planned learning activities and teaching methods

Assesment methods and criteria linked to learning outcomes

Credit: Participation in exercises and processing of assigned programs in C#.

Examination: oral, discussion of the projects with possible additional questions. Classification is fully within the competence of the teacher according to the current BUT guidelines.

Attendance at lectures is recommended, attendance at exercises is compulsory. Classes are held according to the timetable. The determination of the form of compensation for missed exercises is at the lecturer's discretion.

Language of instruction

Czech

Aims

The main goal of the course is to learn how to program professionally in an industrial environment. The student will learn to use basic and advanced tools for professional software development, including the necessary habits.
The teaching is based on C# programming as a software development tool. The student will learn to formulate algorithms for a wide range of engineering tasks, to program in C#, and to understand the features of object-oriented programming and the methodology of program design and development using OOP.
Students will gain basic skills and experience in writing and debugging programs of intermediate level of difficulty using the C# programming language with DevOps resources. Students will master OOP technology for designing and implementing projects in C#.

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

The study programmes with the given course

Programme N-MAI-P: Mathematical Engineering, Master's
branch ---: no specialisation, 3 credits, compulsory-optional

Programme B-STR-P: Engineering, Bachelor's
branch AIŘ: Applied Computer Science and Control, 3 credits, compulsory

Type of course unit

 

Lecture

26 hours, optionally

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 hours, compulsory

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.