Course detail

Programming for Mechanical Engineering

FSI-VCPAcad. year: 2025/2026

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.

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

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.

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

Study aids

KIM, G., WILLIS, J., The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations, 2016, 1942788002

SMART, J. F., JENKINS, 2011, 1449305350

CHACON, S., STRAUB, B., Pro Git, Second Edition, Available https://git-scm.com/book/en/v2 [cited: 21.11.2024]

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.