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

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.




  1. Softwarové inženýrství. Terminologie a specifika vývoje softwaru ve strojním inženýrství.




  2. Životní cyklus softwaru. DevOps, CI/CD, správa verzí.




  3. Testování, analýza a revize softwaru. Vývoj řízený testy (TDD).




  4. Paradigmata vývoje softwaru. Role softwarového specialisty ve všech etapách životního cyklu softwaru.




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




  6. Vývojová prostředí a nástroje. Integrovaná vývojová prostředí (IDE), lintery, normy a vývojové nástroje.




  7. Provoz a údržba softwaru.




  8. Implementace softwaru.




  9. Metody modelování softwaru. Unified Modeling Language (UML).




  10. Základní znalosti softwarového vývojáře I. Kontejnery, caching a logování.




  11. Základní znalosti softwarového vývojáře II. Messaging, monitoring a telemetrie.




  12. Základní znalosti softwarového vývojáře III. Orchestrace, choreografie a trasovatelnost.




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


  1. Pokročilé programování I: Paralelní programování.

  2. Pokročilé programování II: Pokročilé řízení toku programu.

  3. Pokročilé programování III: Synchronizace a neměnnost dat.

  4. Pokročilé programování IV: Funkcionální prvky programování.

  5. Pokročilé programování V: Dynamické vlastnosti programů.

  6. Refaktorizace aplikace I: Architektura a modularizace.

  7. Refaktorizace aplikace II: Verzování a týmová spolupráce.

  8. Refaktorizace aplikace III: Jednotkové testování a TDD.

  9. Refaktorizace aplikace IV: Statická analýza a kvalita kódu.

  10. Modernizace aplikace I: Kontejnerizace softwaru.

  11. Modernizace aplikace II: Monitoring a telemetrie.

  12. Modernizace aplikace III: Trasování a diagnostika.

  13. Závěrečné vyhodnocení refaktorizace aplikace a konzultace.