Fakulta informačních technologií VUT v Brně

Detail předmětu

Seminář C#

ICS Ak. rok 2019/2020 letní semestr 4 kredity

Syntaxe jazyka C#. Objektová orientace. Objektový model, objekty, třídy. Visual Studio. Ladění a profilace. Návrhové vzory. Grafické uživatelská rozhraní, WPF. Asynchronní programování - procesy, vlákna, úlohy. Dotazování nad persistentními daty pomocí LINQ a ORM Entity Framework.

Garant předmětu

Pluskal Jan, Ing. (UIFS FIT VUT)

Zástupce garanta předmětu

Jazyk výuky

česky

Zakončení

klasifikovaný zápočet (ústní)

Rozsah

26 hod. cvičení, 13 hod. projekty

Bodové hodnocení

100 projekty

Zajišťuje ústav

Cvičící

Dybal Martin (FIT VUT)
Jašek Roman, Ing. (UPGM FIT VUT)
Jašek Tibor, Ing. (FIT VUT)
Jež Adam, Ing. (FIT VUT)
Letavay Viliam, Ing. (UIFS FIT VUT)
Mrnuštík Michal, Bc. (FIT VUT)
Pluskal Jan, Ing. (UIFS FIT VUT)

Stránky předmětu

https://github.com/nesfit/ICS

Získané dovednosti, znalosti a kompetence z předmětu

Studenti se seznámí s moderními přístupy při vývoji software na platformě .NET v jazyce C#. Po úspěšném zvládnutí předmětu budou srozuměni s dobrými programátorskými praktikami, které se v praxi na této platformě využívají. Vybaveni nezbytnou znalostí základních návrhových vzorů a jejich implementací vzhledem ke specifickým rysům jazyka C# a běžně používaných knihoven, absolventi budou připraveni na započetí své kariéry coby .NET vývojáře.

Dovednosti, znalosti a kompetence obecné

Práce v týmu naučí studenty vzájemné koordinaci a správnému přístupu k softwarovému vývoji. Základy objektově orientovaného programování, konstruktů používaných v C#, návrhových vzorů a práci s persistentními daty pomocí přístupu ORM.

Cíle předmětu

Cílem je naučit studenty základy objektově orientovaného programování v jazyce C#.

Proč je předmět vyučován

Předmět si klade za cíl zvýšit uplatnění studentů, kteří vidí svoji kariéru coby programátorů, při hledání zaměstnání po studiu. C# se dlouhodobě dostává do popředí s popularizací .NET platformy a nově i .NET Core díky multiplatformnosti. Jedná se o moderní jazyk s vysokou úrovní abstrakce, který není jen objektový, ale obsahují i prvky funkcionálního programování. Student si během kurzu vyzkouší práci v týmu na projektu, který vyžaduje nejen funkční kód, ale dbá i na správný návrh, týmovou spolupráci při verzování kódu a klade důraz na použití návrhových vzorů. Po absolvování je student schopný samostatně vytvořit desktopovou aplikaci s připojením do databáze za kterou se nebude muset v budoucnu stydět.

Prerekvizity

Požadované prerekvizitní znalosti a dovednosti

Základní znalosti imperativního programování (jazyk C), algoritmizace a verzování kódu.

Literatura studijní

  • MARTIN, R. C., & MARTIN, M. (2006). Agile principles, patterns, and practices in C. Pearson Education.
  • MARTIN, Robert C. Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.
  • GAMMA, Erich. Design patterns: elements of reusable object-oriented software. Pearson Education India, 1995.
  • BISHOP, J. (2007). C# 3.0 Design Patterns: Use the Power of C# 3.0 to Solve Real-World Problems. " O'Reilly Media, Inc.".

Literatura referenční

  • ALBAHARI, Joseph; ALBAHARI, Ben.; C# 7.0 in a Nutshell: The Definitive Reference. O'Reilly Media, Inc., 2017.

Osnova přednášek

  1. Úvod do jazyka C# a platformy .NET, základní syntaxe jazyka, instalace a představení Visual Studia.
  2. Úvod do objektově orientovaného programování a pokročilé konstrukce v jazyce C# - výjimky, události, delegáty, lambda výrazy a generika.
  3. Představení základních knihovních funkcí (BCL) a dotazování za pomocí vestavěného nástroje LINQ nad datovými zdroji (kolekcemi, XML, MSSQL).
  4. Návrhové vzory pro práci s vytvářením, strukturováním a chováním - Gang of Four (GoF) v kontextu C#.
  5. Continous Integration v prostředí Azure DevOps a testování aplikací - smoke, unit, integrační, UI a akceptační testy.
  6. Propojení aplikace s databází pro zajištění persistence pomocí ORM rozšíření Entity Framework s návrhovými vzory UnitOfWork a Repository.
  7. Psaní čistého, udržovatelného kódu s respektováním Clean Code, S.O.L.I.D. zásad. Ukázky refaktorizace a práce s legacy kódem.
  8. Návrhový vzor Model-View-ViewModel (MVVM) a architektura desktopových aplikací. Mapování databázových entit na modelové třídy.
  9. Základní koncepty tvorby uživatelského rozhraní pomocí Windows Presentation Foundation (WPF).
  10. WPF za pomoci MVVM, tvorba komponenty a stylování aplikací.
  11. Paralelní a asynchronní programování, proces, vlákno, úloha z pohledu C# a použitého frameworku .NET.
  12. Nástroje pro správu paměti a profilaci výkonu.
  13. Multiplatformní programování .NET Standard, .NET Core. Konteinerizace aplikací pomocí Docker a jejich orchestrace Kubernetes, Docker Swarm.

Průběžná kontrola studia

  • Odevzdání projektu rozdělené do tří částí během semestru.
  • Každá část bude samostatně hodnocena a student obdrží zpětnou vazbu ke své práci, kterou zapracuje do následující fáze.
  • Bodové rozdělení dle fází: 20, 30, 50 bodů.
  • Výsledný projekt bude hodnocený v třetí fázi při obhajobě.

Kontrolovaná výuka

  • Vypracování týmového projektu v rozsahu 3-5 členů v prostředí Azure DevOps.
  • Cílem je vytvořit plně funkční desktopovou aplikaci, podle OOP principů, komunikující s databází.
  • Hodnocení projektu zohlední správné použití S.O.L.I.D, CleanCode zásad probíraných na přednáškách.
  • V případě řádně ohlášené a doložené překážky ve studiu může student požádat o odložení termínu odevzdání u kterékoliv části projektu.

Podmínky zápočtu

  • Získat nejméně 1 bod z každého odevzdání
  • Získat nejméně 50% bodů z projektu

Rozvrh

DenTypTýdnyMístn.OdDoPSKSkupInfo
Pocvičenívýuky D0206 D0207 13:0014:50 2BIA 2BIB 3BIT xx
Pocvičenívýuky D0206 D0207 15:0016:50 2BIA 2BIB 3BIT xx

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

  • Program BIT, 2. ročník, povinně volitelný skupina T
  • Program IT-BC-3, obor BIT, 2. ročník, povinně volitelný skupina T
Nahoru