Detail předmětu
Programování pro strojní inženýrství
FSI-VCP Ak. rok: 2027/2028 Letní semestr
Předmět si klade za cíl naučit studenty používaným metodám a návykům při vytváření softwarových řešení používaných v průmyslu. Student se dozví co je DevOps, kontejner, Unit-testing, apod. a tím ovládne nejpotřebnější znalosti, které jsou již průmyslovým standardem.
Předmět se zabývá výukou algoritmizace a programování. Pro praktickou výuku jsou používány programovací jazyk 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
Garant předmětu
Zajišťuje ústav
Vstupní znalosti
Kurs předpokládá základní znalost algoritmizace a počítačovou gramotnost.
Způsob zakončení předmětu a pravidla hodnocení studentů
Zápočet: Účast na cvičeních a zpracování zadaných programů v C#.
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
Hlavním cílem kurzu je naučit se programovat profesionálně v prostředí průmyslu. Student se naučí používat základní a pokročilé prostředky pro profesionální softwarový vývoj, včetně potřebných návyků.
Výuka je prováděna na podkladu programování v jazyce C# jako prostředku softwarového vývoje. Student se naučí formulovat algoritmy pro širokou škálu inženýrských úloh, programovat v jazyku 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# s využitím DevOps prostředků. Studenti zvládnou technologii OOP pro návrh a realizaci projektů v jazyce C#.
Studijní opory
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]
Použití předmětu ve studijních plánech
Program N-MAI-P: Matematické inženýrství, magisterský navazující, povinně volitelný
Program B-STR-P: Strojírenství, bakalářský
specializace AIŘ: Aplikovaná informatika a řízení, povinný
Typ (způsob) výuky
Přednáška
26 hod., nepovinná
Osnova
Všechna témata podléhají aktuálním trendům ve vývoji softwaru.
Softwarové inženýrství. Terminologie a specifika vývoje softwaru ve strojním inženýrství.
Životní cyklus softwaru. DevOps, CI/CD, správa verzí.
Testování, analýza a revize softwaru. Vývoj řízený testy (TDD).
Paradigmata vývoje softwaru. Role softwarového specialisty ve všech etapách životního cyklu softwaru.
Problémy a metody vývoje softwaru. Týmový vývoj, spolupráce více vývojářů, softwarové metriky, kvalita softwaru a používané nástroje.
Vývojová prostředí a nástroje. Integrovaná vývojová prostředí (IDE), lintery, normy a vývojové nástroje.
Provoz a údržba softwaru.
Implementace softwaru.
Metody modelování softwaru. Unified Modeling Language (UML).
Základní znalosti softwarového vývojáře I. Kontejnery, caching a logování.
Základní znalosti softwarového vývojáře II. Messaging, monitoring a telemetrie.
Základní znalosti softwarového vývojáře III. Orchestrace, choreografie a trasovatelnost.
Základní znalosti softwarového vývojáře IV. Využití umělé inteligence při vývoji softwaru.
Cvičení s počítačovou podporou
26 hod., povinná
Osnova
- Pokročilé programování I: Paralelní programování.
- Pokročilé programování II: Pokročilé řízení toku programu.
- Pokročilé programování III: Synchronizace a neměnnost dat.
- Pokročilé programování IV: Funkcionální prvky programování.
- Pokročilé programování V: Dynamické vlastnosti programů.
- Refaktorizace aplikace I: Architektura a modularizace.
- Refaktorizace aplikace II: Verzování a týmová spolupráce.
- Refaktorizace aplikace III: Jednotkové testování a TDD.
- Refaktorizace aplikace IV: Statická analýza a kvalita kódu.
- Modernizace aplikace I: Kontejnerizace softwaru.
- Modernizace aplikace II: Monitoring a telemetrie.
- Modernizace aplikace III: Trasování a diagnostika.
- Závěrečné vyhodnocení refaktorizace aplikace a konzultace.