Detail předmětu

Programování pro strojní inženýrství

FSI-VCPAk. rok: 2025/2026

Předmět se zabývá výukou algoritmizace a programování. Pro praktickou výuku jsou používány programovací jazyky C a C++. Jazyk C je v současnosti jedním z nejužívanějších programovacích jazyků. K jeho velkým výhodám patří jeho univerzální použitelnost pro nejrůznější aplikační oblasti a dostupnost pro většinu existujících platforem. Jazyk C++ se vykazuje velmi vysokým stupněm implementace rysů objektově orientovaného programování. Překladač jazyka C++ bývá k dispozici pro různě platformy, samotný jazyk je velmi dobře standardizován. Tyto rysy činí jazyk C++ jedním z nejvhodnějších jazyků pro tvorbu rozsáhlých aplikací v současné době.

Jazyk výuky

čeština

Počet kreditů

3

Vstupní znalosti

Kurs předpokládá základní znalost algoritmizace a počítačovou gramotnost.

Pravidla hodnocení a ukončení předmětu

Zápočet: Účast na cvičeních + zpracování zadaných programů v C a C++ (celkem 2 programy). Zkouška: ústní, diskuse nad zpracovanými projekty s možnými doplňujícími otázkami. Klasifikace je plně v kompetenci vyučujícího podle platných směrnic VUT v Brně.
Přítomnost na přednáškách je doporučená, na cvičeních povinná. Výuka probíhá podle rozvrhu. Stanovení formy náhrady zameškaných cvičení je v kompetenci vyučujícícho.

Učební cíle

Cílem kursu je naučit se formulovat algoritmy pro širokou škálu inženýrských úloh, programovat v jazycích C a C++ a pochopit rysy objektově orientovaného programování a metodiku návrhu a tvorby programu s využitím OOP.
Studenti získají základní dovednosti a zkušenosti při psaní a ladění programů středního stupně obtížnosti s využitím programovacího jazyka C a C++. Studenti zvládnou technologii OOP pro návrh a realizaci projektů v jazyce C++.

Základní literatura

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)

Doporučená literatura

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)

Zařazení předmětu ve studijních plánech

  • Program B-STR-P bakalářský

    specializace AIŘ , 2 ročník, zimní semestr, povinný

  • Program N-MAI-P magisterský navazující 1 ročník, zimní semestr, povinně volitelný

Typ (způsob) výuky

 

Přednáška

26 hod., nepovinná

Vyučující / Lektor

Osnova

1. Softwarové inženýrství, terminologie, specifika vývoje softwaru ve strojním inženýrství.
2. Životní cyklus SW. DevOps. CI/CD. Version control.
3. Koncept testování, analýzy a review. TDD.
4. Používané paradigmata vývoje softwaru. Role softwarového specialisty ve všech etapách životního cyklu softwaru.
5. Základní problémy a používané metody při vývoji softwaru. Metody vývoje v týmu z hlediska spolupráce více vývojářů, metriky a kvalita softwaru. Používané nástroje.
6. Vývojová prostředí, lintery, normy - tooling.
7. Provoz a údržba softwaru.
8. Implementace softwaru.
9. Používané metody modelování softwaru, UML.
10. Must-have znalosti softwarového vývojáře - Kontejnery, Caching, Logging
11. Must-have znalosti softwarového vývojáře - Messaging, Monitoring, Telemetrie
12. Must-have znalosti softwarového vývojáře - Orchestrace/Choreografie, Trasovatelnost
13. Must-have znalosti softwarového vývojáře - Použití AI při vývoji softwaru

Cvičení s počítačovou podporou

26 hod., povinná

Vyučující / Lektor

Osnova

1. Vývojové prostředí Visual Studio/ VS Code. Jednoduchá konzolová aplikace.
2. Principy a typy programovacích jazyků. Společné řídicí struktury programovacích jazyků.
3.-5. Základy OOP, datové struktury. Návrh a realizace konzolové aplikace v jazyce C#.
6. Refaktorizace I: rozdělení projektu do funkčních bloků. SW balíčky.
7. Refaktorizace I: verzování projektu, práce v týmu. GIT.
8. Refaktorizace II: koncept TDD, unit-testing.
9. Refaktorizace III: Statická analýza kódu. Čitelnost kódu. Použití linterů.
10. Kontejnerizace softwaru.
11. Refaktorizace IV: základní metody monitoringu stavu aplikace, telemetrie.
12. Refaktorizace IV: trasovatelnost.
13. Případové studie, konzultace.